自动提交表单使用javascript错误

时间:2017-11-02 04:41:47

标签: javascript jquery forms

我正在使用一个单选按钮提交表单,只有第一个记录,单选按钮正在工作,其他一个没有

example Fiddle http://jsfiddle.net/sjs96/q9a6v4ma/1/

<form id="searchid" method="post" action="test.php">

    <label><input name="search" id="radio" type="radio">test1</label><br>
    <label><input name="search" id="radio" type="radio">test2</label><br>
    <label><input name="search" id="radio" type="radio">test3</label>

</form>

JS:

var form = document.getElementById("searchid");
document.getElementById("radio").addEventListener("click", function () {
    form.submit();
});

4 个答案:

答案 0 :(得分:2)

您不能拥有多个具有相同ID的元素。

改为使用查询选择器:

试试这个:

var form = document.getElementById("searchid");
var currEl = document.querySelectorAll(".radio");
for (var i = 0; i < currEl.lenght; i++) {
    currEl[ i ].addEventListener("click", function () {
      form.submit();
});
}

此外,

为您的无线电使用不同的ID。具有相同的ID将导致进一步的问题,并可能影响性能。

答案 1 :(得分:1)

Use jquery  

var form = document.getElementById("searchid");
        $('input[type=radio]').on("click", function () {
          form.submit();
        });

答案 2 :(得分:1)

只有一个id具有相同的值。我建议你使用class而不是Code Snippet中给出的id

&#13;
&#13;
$(document).ready(function() {
  var form = document.getElementById("searchid");  
    $('.radio').click(function(){
      form.submit();
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="searchid" name='myForm' method="post" action="test.php">

                             <label><input name="search" class="radio" type="radio">test1</label><br>
                             <label><input name="search" class="radio" type="radio">test2</label><br>
                             <label><input name="search" class="radio" type="radio">test3</label>
                </form>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

请勿对输入标记使用相同的ID。

<label><input name="search" id="radio1" type="radio">test1</label><br>
<label><input name="search" id="radio2" type="radio">test2</label><br>
<label><input name="search" id="radio3" type="radio">test3</label>

更改这3个ID的JS代码,

var form = document.getElementById("searchid");
document.getElementById("radio1").addEventListener("click", function () {
  form.submit();
});

document.getElementById("radio2").addEventListener("click", function () {
  form.submit();
});

document.getElementById("radio3").addEventListener("click", function () {
  form.submit();
});

对于动态收音机,请按照下面的说明进行操作。

创建js函数,只包含表单submit,

var form = document.getElementById("searchid");
function myFunction() {
   form.submit();              
}

使用onclick事件调用该函数,

<label><input name="search" type="radio" onclick = "myFunction()">test</label>
相关问题