当前位置: 首页 > 知识库问答 >
问题:

jquery 检测文本框值更改不是基于用户输入

元彦君
2023-03-14

假设您的页面上有一个简单的文本框和按钮。单击该按钮将更新文本框值:

超文本标记语言:

<input type="text" id="myText" val="" />
<input type="button" id="myBtn" value="Change TextBox Value" />

jQuery:

$("#myBtn").on('click', function() {
   $("#myText").val('adsf');
})

我想为文本框的更改事件添加一个事件侦听器,如下所示:

$('#myText').on('change', function(){
    alert('Changed!')
});

当您单击按钮时,该警报不会触发,但当您手动更改文本框值并将其焦点移出时,该警报会被触发。

我知道你可以将$(“#myText”).trigger('change')添加到按钮的onclick事件中,但我希望只通过在文本框中添加事件侦听器来实现这一点。

jsfiddle

谢啦

共有3个答案

巫马英豪
2023-03-14

您需要连接两个处理程序。要重用处理程序,可以将其提取到一个命名函数中:

function showChanged(){
    alert('Changed!')
}

$("#myBtn").on('click', showChanged);
$("#myText").on('change', showChanged);
上官树
2023-03-14

为什么不在单击按钮时强制手动事件 -

$('#myText').on('change',function(e){
    alert('Changed!');
});

$("#myBtn").on('click', function() {
    $("#myText").val('adsf');
    $("#myText").change();
})
宦子琪
2023-03-14

不支持此类事件。您唯一可以尝试的是设置间隔或超时以检查值是否已更改(使用数据存储临时值):

var $myText = $("#myText");

$myText.data("value", $myText.val());

setInterval(function() {
    var data = $myText.data("value"),
        val = $myText.val();

    if (data !== val) {
        $myText.data("value", val);
        alert("changed");
    }
}, 100);

演示:http://jsfiddle.net/xZcAr/1/

 类似资料:
  • 问题内容: 在事件上使用jquery时,仅当输入失去焦点时才会触发事件 就我而言,我需要在输入值更改后立即调用该服务(检查值是否有效)。我该怎么做? 问题答案: 更新为澄清和示例 方法1。事件 在现代浏览器中使用事件。当用户在任何时候将值从一个值更改为另一个值时,都将在用户键入文本字段,粘贴,撤消操作时触发此事件。 在jQuery中这样做 从jQuery 1.7开始,替换为: 方法2。事件 对于较

  • 我有一个页面,上面有多个JQuery-UI滑块,每个滑块都有一个关联的文本输入框,关联是双向的:当滑块改变时,文本框值改变。当文本框值改变时,滑块改变。 到目前为止,我的工作方式只有一种:当滑块改变时,文本框的值也会改变。但我不能让它反向工作。 这是我的滑块 下面是一个滑块的标记: 这是JQuery,我试图用它来获取“金额”的值,并用它来设置关联滑块的值。我通过从文本框ID的末尾减去7个字符(“_

  • 我有一个repeater,其中一个列包含一个textbox,上面附加了一个JQuery datepicker和一个update按钮。因此,用户使用datepicker更改日期,单击update并将其写入数据库,原始日期和记录id存储在隐藏字段中。 null null 调用此函数 null null 但是,newDueDate变量仍然保留原始的到期日。因此,新旧日期匹配,因此数据库不会更新。如何让它

  • 问题内容: 我想检测何时文本框的内容已更改。我可以使用keyup方法,但是它也可以检测不会产生字母的击键,例如箭头键。我想到了使用keyup事件执行此操作的两种方法: 仔细检查所按键的ASCII码是否为字母\退格\删除 使用闭包来记住按键之前文本框中的文本,并检查是否已更改。 两者看起来都很麻烦。 问题答案: 开始观察“输入”事件而不是“改变”事件。 …很干净,但可以扩展到:

  • 问题内容: 我正在尝试在浏览器扩展程序中运行javascript,以自动化在网站上填写表单然后单击按钮的过程- 可以通过在地址栏中键入javascript:code来模拟扩展程序代码。 我遇到问题的网站使用。我有输入字段ID的名称,并且正在使用它们来更改输入字段的值。这些字段已填满,但是当我单击按钮时,它说它们没有填满,没有值,并且都出错了。正在进行一些验证,除非我手动输入值,否则这些验证不会“看

  • 问题内容: WKWebView类是否具有一个函数,可让您检测该WebView的URL是否已更改? 使用WebView中的某些元素时,and 函数似乎并不总是会触发。 编辑: 尝试添加一个通知观察器。到目前为止,这是我所拥有的: 问题答案: 您是什么意思,他们似乎并不总是会开除?什么样的元素?他们必须为了WkWebView起作用。 该URL试图更改的第一个迹象是在:DecisionPolicyFor