JQuery 努力从单选按钮获取值(value)

标签 jquery

我有一个像这样的简单表格

 <form>
    <label class="radio-inline"><input type="radio" name="optradio" value="yes" checked="checked">Yes</label>
    <label class="radio-inline"><input type="radio" name="optradio" value="no">No</label><br><br>
    <button type="submit" class="btn artBtn" title="click here ">Submit &gt;</button>
</form>

此表单在多个页面中使用,但我认为这并不重要。 然后我执行以下操作

$(".artBtn").click(function(e) {
    e.preventDefault();
    if ($('input[name="optradio"]:checked').size() > 0) {
        $('.contentDiv').html('<p>Thanks!</p>');
        submitData($(this).val());
    }
});

为什么我发送给submitData的值是空的?我也尝试过直接通过输入检索它,但如果我这样做,它是未定义的。如何获得合适的选定值?

谢谢

最佳答案

click 处理程序中,this 指的是单击的元素。这意味着您正在发送按下的提交按钮的值。由于它没有任何值(value),您将收到一封空白邮件。

改为发送所选单选按钮的值:

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

所以完整版本可能是这样的:

$(".artBtn").click(function(e) {
    e.preventDefault();
    var $radio = $('input[name="optradio"]:checked');
    if ($radio.length){
        $('.contentDiv').html('<p>Thanks!</p>');
        submitData($radio.val());
    }
});

注释:

  • 您可以使用 if ($radio.length) 测试非零长度,看看是否存在匹配。
  • 仅运行选择器一次,以避免额外处理并将结果保存在变量中。
  • 我提倡在 jQuery 对象前面加上 $ 的标准,以明确什么是 jQuery 对象。

关于JQuery 努力从单选按钮获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34928064/

相关文章:

javascript - 在 IIS 与本地的 html 中嵌入托管的 jquery

javascript - 从导航后面滑出文本

jquery - 使用 jQuery 将类添加到列中的下一个表格单元格

javascript - jquery 中的电话号码验证

javascript - 试图了解 jquery on events 之间的区别

javascript IE问题。仅在 IE 中不起作用

jquery - slideToggle 留下空白空间

javascript - 如何使用json数据作为highcharts饼图?

javascript - 如何在 Angular js 中声明设备就绪

javascript - 使用 jQuery 单击另一个音频文件时停止音频,同时隐藏链接