Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery检查选择字段是否更改_Jquery - Fatal编程技术网

jQuery检查选择字段是否更改

jQuery检查选择字段是否更改,jquery,Jquery,如果select字段被更改,我想进行jQuery检查。如果更改,则设置一条警报消息(已更改),如果返回默认值,则设置另一条警报消息(默认值) 请告知这是否是正确的方法。我会采取以下措施: HTML: 您不需要每个内部循环。Plus$(this)[0]可以优化为仅this: $('select')。在('change',函数(){ var isDirty=!this.options[this.selectedIndex].defaultSelected; 如果(isDirty){ 警报(“已更改

如果select字段被更改,我想进行jQuery检查。如果更改,则设置一条警报消息(已更改),如果返回默认值,则设置另一条警报消息(默认值)


请告知这是否是正确的方法。

我会采取以下措施:

HTML:


您不需要每个
内部循环。Plus
$(this)[0]
可以优化为仅
this

$('select')。在('change',函数(){
var isDirty=!this.options[this.selectedIndex].defaultSelected;
如果(isDirty){
警报(“已更改”);
}否则{
警报(“默认值”);
}
});

标签1
标签2
标签3
标签4

感谢您的明确回答。关于
每个
循环,如果我想检查表单中所有可用的select字段,是否不需要它?这是一个新手问题:)
$('select')。在('change',…)
上已经处理了所有的选择框(它在内部使用每个选择框)。
$('select').on('change',function () {
    var isDirty = false;

    $('select').each(function () { 
        var $e = $(this);      
        if (!$e[0].options[$e[0].selectedIndex].defaultSelected) {
        isDirty = true;
        }    
    });

    if(isDirty == true) { 
        alert("has changed");
    } else {
        alert("default value");          
    }
});
<select data-default="one" id="the-select">
  <option>one</option>
  <option>two</option>
</select>
$('#the-select').change(function() {
    var changed = $(this).val() != $(this).data('default');
    alert(changed ? 'changed' : 'not changed');
});