0

我已经构建了一个包含 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 />")

谢谢你们的帮助!

4

3 回答 3

1

您在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 />")
于 2013-03-19T18:50:10.687 回答
0

当您需要在输出中使用双引号时,请在 ASP response.write 语句中使用双双引号。

Response.write(i & ") <input type=""text"" name=""objective" & i & """ size=""50"" onClick=""document.getElementById('obj" & b & "').style.display='inline';"" /><br />")

编辑 - 我的整个页面,我已经测试过

<html>
<head>
<title> New Document </title>

</head>

<body>
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

%>
</body>
</html>
于 2013-03-19T19:01:47.347 回答
0

我认为您不需要全部逃避它们,只需要更改 onclick 的一轮。它需要一个“但得到一个'。用这个替换你的代码行并且应该没有问题:

Response.write(i & ") <input type='text' name='objective" & i & "' size='50' onClick=""document.getElementById('obj" & b & "').style.display='inline';"" /><br />")
于 2013-03-19T19:09:19.870 回答