Jquery - 确定单选按钮值是否未更改

时间:2016-05-11 13:45:17

标签: javascript jquery ruby-on-rails

是否可以确定单选按钮的值是否未更改?

目前我正在尝试更改按钮更改时提交按钮的确认消息,如果值未更改,则不想要任何消息。我现在有这样的事情:

$('input[type="radio"]').change(function() {
    var selected = $('input:checked[type="radio"]').val();
    if(selected == 'true') {
       $("#submit_button").data("confirm", "foo");
    } else if(selected == 'false') {
        $('#fee').hide();
        $("#submit_button").data("confirm", "bar");
    }

如果选择的按钮为true,则会将确认消息更改为foo;如果选择的按钮为false,则将更改为bar。但是,如果我想不返回任何内容(没有消息),如果默认情况下单选按钮为真,并且选中的内容为真,该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以在事件之外启动变量:

var radioChanged = 0;

并且,在您的活动中增加它:

$(':radio').change(function() {
    radioChanged += 1;
    // your code ...
});

然后,稍后:

if (radioChanged > 0) {
    alert('Change function occurred ' + radioChanged + ' times.');
} else {
    alert('Radio button not changed.');
}

答案 1 :(得分:1)

据我了解您的预期行为,请检查是否有任何广播没有更多其默认选中值:

$('form').on('submit', function() {
  var anyRadioChanged = !!$(this).find('input[type="radio"]').filter(function() {
    return $(this).is(':checked') != this.defaultChecked;
  }).length; // '!!' to get boolean but it doesn't really matter here

  if(anyRadioChanged) {
     // show message(???)
  }
})

答案 2 :(得分:0)

您可以隐藏消息元素,只需向其添加display:none或使用jquery hide方法

$('#someElementId').hide();

$('#someElementId').css("display","none")