我构建了一个包含 16 个输入框的表单,供用户输入特征列表。
现在,我正在努力做到这一点,当您单击其中一个文本字段进行键入时,会出现下一个字段。
它可以使第二个框出现,仅此而已。
我使用了 for next 循环来执行此操作。下面是代码,为什么它对第二个之后的任何连续框都不起作用?
1) <input type="text" name="objective1" size="50" onClick="document.getElementById('obj2').style.display='inline';" /><br />
<%
Dim i, b
b = 0
For i = 2 To 16
b = i+1
Response.Write("<span id='obj" & i & "' style='display:none'>")
Response.write(i & ") <input type='text' name='objective" & i & "' size='50' onClick='document.getElementById('obj" & b & "').style.display='inline';' /><br />")
Response.Write("</span>")
Next
%>
我在工作中/为了工作开发这个,我们使用的是 IE8,所以请记住这一点以了解功能。
任何输入都会很棒。我认为这段代码有意义......?它可能缺少一小段代码,我会因为没有意识到而感到愚蠢哈哈。
谢谢
** 解决方案:**
我解决了这个问题。这是引用的问题,就像@John 和@Vlad 提到的那样。
除了他提出的解决方案代码给我一个语法错误,所以我不得不采取不同的方法:
Response.write(i & ") ") %><input type="text" name="objective<%=i%>" size="50" onClick="document.getElementById('obj<%=b%>').style.display='inline';" /><br /><%
我在 For Next 循环中修复了上面的行。
或@Martyn0627 提交:
Response.write(i & ") <input type='text' name='objective" & i & "' size='50' onClick=""document.getElementById('obj" & b & "').style.display='inline';"" /><br />")
谢谢大家的帮助!
最佳答案
onclick
属性中有引号问题:
<input
type='text'
name='objective" & i & "'
size='50'
onClick='document.getElementById('obj" & b & "').style.display='inline';' <~~~ HERE
/>
尝试转义它们(用双引号替换 onclick
属性值周围的单引号):
Response.write(i & ") <input type='text' name='objective" & i & "' size='50' onClick=""document.getElementById('obj" & b & "').style.display='inline';"" /><br />")
关于javascript - 通过上一个输入框的onClick函数使输入框可见只作用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507784/