Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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_Html_Css - Fatal编程技术网

jQuery实时检查输入更改

jQuery实时检查输入更改,jquery,html,css,Jquery,Html,Css,我被一个新的代码困住了,我寻求一个智能的单向高效解决方案。 我想做一些类似于Twitter的事情,假设我们有两个 类型为文本的输入,一旦改变,我们要么删除TTR(“禁用”,“禁用”);或者attr(“disabled”、“disabled”),我知道在检查一个字段时很容易做到这一点,但假设我在字段上更改了,然后我更改了另一个字段,突然我决定将其中一个字段更改回原来的值,反之亦然,或者两者都更改回以前的值,这样提交按钮在禁用/启用之间更改 以下是我的JSFIDLE: 提交 不确定.each(

我被一个新的代码困住了,我寻求一个智能的单向高效解决方案。 我想做一些类似于Twitter的事情,假设我们有两个 类型为文本的输入,一旦改变,我们要么删除TTR(“禁用”,“禁用”);或者attr(“disabled”、“disabled”),我知道在检查一个字段时很容易做到这一点,但假设我在字段上更改了,然后我更改了另一个字段,突然我决定将其中一个字段更改回原来的值,反之亦然,或者两者都更改回以前的值,这样提交按钮在禁用/启用之间更改

以下是我的JSFIDLE:




提交

不确定.each()是否有效?您可以使用
占位符
HTML5属性来定义默认文本。如果字段为空但不是实际值,则会显示该字段。更多关于MDN的信息不,不,不!测试我的JSFIDLE,我从value属性读取值,因为它在键入时不会改变,但是什么会改变它,文本字段输入中的实际值,而不是它的value属性,这就是我读取value属性并将其存储为旧值以与input.val进行比较的原因。是否希望在两个字段的值与Carl Johnson的值不同时立即提交?换句话说,当字段1等于“卡尔”,字段2等于“克罗斯比”时,您是否希望能够提交?或者你绝对需要字段1与“Carl”不同?不,不,不!让我们澄清一下:1。我转到我的帐户设置,我会看到我的当前值,名字:Carl姓氏:Johnson如果我只是更改了第一个字段,按钮将被启用,但如果对任何字段所做的更改等于其以前的值,按钮将切换为禁用,因为从技术上讲,用户没有更改某些内容。但如果我更改:字段1:Carlzz字段2:Johnson,则按钮将启用提交,如果我随后返回并将字段1更改为Carl,则提交按钮必须保持启用状态,因为一个字段=新val!=谢谢,看起来很有希望,有没有一种方法可以动态地跟踪字段,就像您当前使用的ID一样!.each()可以应用于“keyup”吗?@JohnSmith-就像这样,可以使用任何可用的输入,只需更改顶部选择器等。非常感谢!你救了我,这是一个非常有效的解决方案,就在这里。非常感谢!:)::):)::):)::)::)::)::)::):):)::):):)::):):):):):):):):)今天学到了新东西!我非常喜欢StackOverflow,以及他们提供的所有解决方案。令人惊叹的!现在我已经确切地知道了这段代码是如何工作的,我可以轻松地为其他涉及这类操作的东西编写自己的代码了。:)
<input type="text" value="Carl" name="first_name" maxlength="15" id="firstname" />
<input type="text" value="Johnson" name="last_name" maxlength="15" id="lastname" />
<br /><br />
<button id="senddata" disabled="" type="submit">Submit</button>
var inputs = $('input[type="text"]'),
    button = $('#senddata');

inputs.each(function() {
    $(this).data('val', this.value);
}).on('keyup', function() {
    var state = true;
    inputs.each(function(i,el) {
        if ( $(el).val() != $(el).data('val')) state = false;
    });
    button.prop('disabled', state);
});