我正在JSP中创建一个页面,无法确定如何执行以下操作。
我在for循环中动态生成了一堆单选按钮
<%
for (Something something : somethings) {
for (Random random : something.getRandoms ()) { %>
<input type ="radio" name="<%= something%>" value="<%= random.toString()%>"><%= random%> <br>
<% }%>
Some text here : <input type = "text" name="<%= something%>Text" placeholder="Some more text here"/>
<% }%>
我想做的是:
当选中其中一个单选按钮时,文本框应为空,当文本框中输入某些文本时,单选按钮应清除。
我在javascript中试过说
<name of text box>.value=""
,但它不起作用。 最佳答案
正如评论中所讨论的,这个答案假设您已经在每一组单选按钮和文本框周围包装了一个fieldset
:
var sets = document.getElementsByTagName('fieldset'),
setsCount = sets.length,
clearBox = function (box) {
box.value = '';
},
clearFields = function (fieldset) {
var buttons = fieldset.querySelectorAll('input[type="radio"]'),
buttonCount = buttons.length,
textBox = fieldset.querySelector('input[type="text"]'),
j;
for (j = 0; j < buttonCount; j += 1) {
buttons[j].onclick = function () {
clearBox(textBox);
};
}
textBox.onkeypress = function () {
for (j = 0; j < buttonCount; j += 1) {
buttons[j].checked = false;
}
};
},
i;
for (i = 0; i < setsCount; i += 1) {
clearFields(sets[i]);
}
Demo