2013-05-15 62 views
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"/> 
<% }%> 

我想要做的是:

當一個單選按鈕被選中,文本框應爲空,當在文本框中輸入一些文本時,應清除單選按鈕。

我試過在javascript中使用<name of text box>.value="",但它不起作用。

+0

一個很好的問題... –

+0

您在設置文本框的值或處理事件還是兩者都有問題? – Nikhil

+0

將一個類(比如說txtBox)分配給所有的無線電文本框和radioBtn。點擊單選按鈕,獲取所有具有txtBox類的元素並清除,爲文本框做同樣的事情。 – Manish

回答

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]); 
} 

Demo

+0

我有多組單選按鈕。所以我不能這樣做。每個組(一些單選按鈕+ 1個文本框)是獨立的。我需要對此進行修改。 – pratnala

+0

將每個組放入一個字段集,然後僅選擇字段集中的輸入。 –

+0

你能詳細說明一下嗎?從未使用的字段集。另外,我編輯了我的代碼 – pratnala