javascript - 命名 html 选项字段和复选框以在 jquery 中正确使用

标签 javascript jquery forms

我正在尝试获取数组中的值然后显示它。这对于我所拥有的来说效果很好 html:
<input id="email" type="email" name="email" required="required" />
jQuery:

    $('#email').on('keyup', updateStatus);
    person[0] = $('#email').val();

但是当我对选项字段或复选框执行此操作时,这不起作用:我总是在选项字段中得到值 Female ,在复选框中得到值 1 。我该如何命名它们才能使其正常工作?

  <input type="radio" id="gender" name="gender" value="Male">Male</input>
  <input type="radio" id="gender" name="gender" value="Female">Female</input>

                <label>        
                    <input type="checkbox" id="chbx1" name="sportart" value="1" />1</label>
                <label>
                    <input type="checkbox" id="chbx1" name="sportart" value="2" />2</label>
                <label>
                    <input type="checkbox" id="chbx1" name="sportart" value="3" />3</label>
                <label>
                    <input type="checkbox" id="chbx1" name="sportart" value="4" />4</label>

还有 jquery:

 $('#gender').on('blur', updateStatus);
    $('#chbx1').on('blur', updateStatus);

     person[3] = $('#gender').val();
        person[4] = $('#chbx1').val();

这是我的 updateStatus 函数:

 function updateStatus() {
    var person = [];
    person[0] = $('#email').val();
    person[1] = $('#passwort').val();
    person[2] = $('#passwortwd').val();
    person[3] = $('#gender').val();
    person[4] = $('#chbx1').val();
    person[5] = $('#hobby').val();


    $('#status').text(JSON.stringify(person));
}

最佳答案

HTML ID 应该唯一。多个项目不能具有相同的 ID。

按 ID (#...) 选择将始终返回一个项。

例如,检查这个片段:

document.write("By name:" + $("[name='gender']").length + "<br/>");
document.write("By ID:" + $("#gender").length + "<br/>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="radio" id="gender" name="gender" value="Male"/>Male
<input type="radio" id="gender" name="gender" value="Female"/>Female
<br/><br/>

您应该将事件分配给名为 sportart 的所有元素,如下所示:

$("input[name='sportart']").on('change', function() {
  alert(this.value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="checkbox" name="sportart" value="1" />1<br/>
<input type="checkbox" name="sportart" value="2" />2<br/>
<input type="checkbox" name="sportart" value="3" />3<br/>
<input type="checkbox" name="sportart" value="4" />4

您始终可以使用 :checked 选择器获取选定的 radiocheckbox 值:

var arr = $("input[name='sportart']:checked"); // for checkbox it is array
alert(arr.length); // count of selected items
alert(arr[0].value); // value of the first one

$("input[name='gender']:checked").val();

关于javascript - 命名 html 选项字段和复选框以在 jquery 中正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32962216/

相关文章:

javascript - session 超时计时器未等待音轨播放时间

javascript - 在哪里存储 Angular JS中的全局数据?

javascript - 后端带有 Java 的富 Web 应用程序(HTML5 +JS)?

jquery - 保持缩略图预览行均匀分布

javascript - 根据另一个div的文本内容更改div的底部边框

ruby-on-rails - 如何更新 Controller 方法的特定字段值?

具有混合输入(文件和文本)的 PHP 表单

javascript - 如何使用 AngularJS 绑定(bind)到复选框值列表?

javascript - 是否可以在 Chromium OS 而不是 Chromium 上构建 Electron 应用程序?

javascript - 带按钮的 HTML 表单分配最后一个按钮的值,无论选择哪个按钮