2

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"/>
<% }%>

私がやりたいことは次のとおりです。

ラジオ ボタンの 1 つをオンにすると、テキスト ボックスが空になり、テキスト ボックスにテキストが入力されると、ラジオ ボタンがクリアされます。

と言ってjavascriptで試してみました<name of text box>.value=""が、うまくいきません。

4

1 に答える 1

1

コメントで説明したように、この回答は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]);
}

デモ

于 2013-05-15T11:02:48.213 に答える