Я хочу обновить свое текстовое значение при установке флажка - PullRequest
1 голос
/ 27 марта 2020

У меня есть форма, у нее есть флажок, значение (сколько элементов вы хотите), элемент (например: ручка, ластик).
Мое значение установлено 0, надеюсь, когда я проверил, значение станет 0 -> 1
Это мой код:

<div class="container">
  <table>
    <thead>
    <tr><th>checkbox</th><th>value</th><th>item</th></tr> 
    </thead>
    <tbody id="myTable">
        <%     

          String sql = "select * from send"; 
            pstmt = conn.prepareStatement(sql);  
             ResultSet rs = pstmt.executeQuery(); 
             pstmt.setQueryTimeout(60);
             while(rs.next()){ 
                         String name = rs.getString("name");  
     String c_id = rs.getString("c_id");
                    out.print("<tr><td>"+"<input type=checkbox name='a'id='a' value="+c_id+" onclick='testfun( this,"+c_id+")'>"+"</td>"
                + "<td><input type=text id='"+c_id+"' value=0 SIZE=5></td><td>"+name+"</td></tr> "); 
                   }
                    rs.close(); 
            %>

    </tbody>
  </table>
  </form>
</div>
<script type="text/javascript">
unction testfun(element, c_id) {
var x = document.getElementById('c_id');
 //if check-box is checked
 if (element.checked) {

x.value ="1";

 } else {
x.value ="0";
 }

}

</script>

Как я могу это сделать? Я не знаю, почему я не могу изменить значение?
Спасибо.

Ответы [ 2 ]

1 голос
/ 27 марта 2020

Назначьте c_id для вашего поля ввода и передайте то же самое для вашего function, то есть: testfun() с текущим установленным флажком, используя this. Как ниже:

Jsp код :

out.print("<tr><td>"+"<input type='checkbox' name='a' value="+c_id+" onclick='testfun( this ,'"+c_id+"')'>"+"</td>" + "<td><input type='text' id='"+c_id+"' name='count' value=0 SIZE=5></td><td>"+name+"</td></tr> ");

Js код :

function testfun(element, cName) {
  var x = document.getElementById(cName);
  //if check-box is checked
  if (element.checked) {
    //assign required value
    x.value = 1;

  } else {
    x.value = 0;
  }
}

Демонстрационный код :

function testfun(element, cName) {
  var x = document.getElementById(cName);
  //if check-box is checked
  if (element.checked) {
//assign required value
x.value = 1;

  } else {
x.value = 0;
  } }
<input type="checkbox" name="abc" value="ddnd" onclick="testfun(this,'a')" />1
<input type="checkbox" name="abc" value="ddnd" onclick="testfun(this,'b')" />2

<input type="text" id="a" />
<input type="text" id="b" />
0 голосов
/ 27 марта 2020

У вас есть getElementById, но вы даете ему значение из атрибута "name" элемента. Добавьте id='a' к вашему флажку, и он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...