gpt4 book ai didi

Javascript 和使用变量而不是括号表示法中的字符串

转载 作者:行者123 更新时间:2023-12-03 12:06:58 25 4
gpt4 key购买 nike

我有一个 PHP 脚本,它采用包含可变数量问题的文本列表,并生成如下所示的 HTML 表单代码。

What did you think of X?<br />
<input type="hidden" name="$survey[0][0]" value="What did you think of X?">
<input type="radio" name="$survey[0][1]" value="1">Didn't like it.
<input type="radio" name="$survey[0][1]" value="2">I was indifferent.
<input type="radio" name="$survey[0][1]" value="3">Liked it.

$survey[n][0] 是问题,$survey[n][1] 是答案,n是问题的可变数量。

为了使用 Javascript 进行验证,我有一个循环遍历问题的循环,以及其中一个循环以确保每个问题都有答案。我的问题是引用名称中带有 [] 的元素。这是我认为我的代码的相关部分。

var formElements = document.forms["form"].elements;
var groupCount = document.getElementsByTagName("li").length;
var groupNdx = 0;
var groupName = "";
var btnCount = 0;
while (groupNdx < groupCount) {
groupName = "'$survey[" + groupNdx + "][1]'";
btnCount = formElements[groupName].length;

最后一行不起作用,因为 formElements[groupName] 是“未定义”。formElements['$survey[3][1]'] 工作得很好,但是它硬编码了元素的名称,我需要为每个问题重复代码,更糟糕的是,它是一个 < i>问题数量不定。

当我打字时,类似问题侧边栏建议我阅读 Why aren't variable names converted to strings when using bracket notation in javascript? ,所以现在这就是 Javascript 中的情况。

但是您会建议什么解决方法呢?我可能会忘记使用 Javascript 进行验证,因为我还使用 PHP 验证表单,但我知道在客户端和服务器端验证表单是一个很好的做法。感谢您的帮助!

最佳答案

您有一组额外的单引号,不应在此处出现:

groupName = "'$survey[" + groupNdx + "][1]'";

这会在键本身中添加单引号。将其更改为:

groupName = "$survey[" + groupNdx + "][1]";

请注意,x["'key'"] 与 Javascript 中的 x['key'] 不同。第一个有一个键 'key' (包括引号),而第二个只有字符串:key

关于Javascript 和使用变量而不是括号表示法中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25143761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com