0

ユーザーが特性のリストを入力するための 16 個の入力ボックスを持つフォームを作成しました。

今、テキスト フィールドの 1 つをクリックして入力すると、次のフィールドが表示されるようにしようとしています。

2番目のボックスが表示されるように機能し、それだけです。

これを行うために for next ループを使用しました。以下はコードですが、2 番目のボックスに続く連続するボックスで機能しないのはなぜですか?

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

私はあなたがそれらすべてを逃れる必要はないと思います、ただonclickの周りの1つを変える必要があります。「」を期待しますが、「」を取得しています。コード行をこれに置き換えてください。問題はありません。

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 に答える
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 に答える