【问题标题】:How to verify that input field has changed in jQuery如何验证 jQuery 中的输入字段是否已更改
【发布时间】:2018-02-16 17:21:02
【问题描述】:

我编写的方法检查日期是否已在输入字段中插入/更改,并且我想在此条件为真时向用户触发确认消息。 即使日期没有更改,每次都会触发确认消息的问题。我的方法如下所示:

   var alertuserSave = function() {
        val4 = $("#ContentPlaceHolder1_txtFinalized").val();
         var alrt_value = document.createElement("INPUT");
         alrt_value.type = "hidden";
         alrt_value.name = "confirm_value";
         if ((val3 === "5" || val3 === "6") && val4) {
         confirm("Remember to Save the inserted data.");
         alrt_value.value = "Yes";
         } else {
             alrt_value.value = "No";
         }


         document.forms[0].appendChild(alrt_value);
     }

我在文档加载时添加了一个监听器,如下所示:

var val3 = $('#ContentPlaceHolder1_ddlResponsibility').val();
    var val4 = $("#ContentPlaceHolder1_txtFinalized").val();
    console.log(val4 + " is val4 ")
    $(document).ready(function() {
        $("#ContentPlaceHolder1_txtFinalized").change(alertuserSave);

如何使弹出窗口仅在日期更改而不是每次更改时触发?

【问题讨论】:

  • '&& val4'应该做什么?
  • 您可以在日期字段上使用焦点和模糊事件。您可以将日期的值存储在焦点上,然后在模糊函数中,您可以检查最终字符串和初始字符串是否相同并触发您的如果日期不同则函数:)
  • @JonasSchafft 我想检查一下 val4 的值是否没有改变。

标签: javascript jquery input alert onchange


【解决方案1】:
val4 = $("#ContentPlaceHolder1_txtFinalized").val();

返回元素的值

所以如果你检查:

(...  && val4) 

它总是正确的

您需要检查以下内容:

val4 != oldvalue

【讨论】:

  • 以及如何获取旧值?我试图通过 var val4 = $("#ContentPlaceHolder1_txtFinalized").data('val4', $("#ContentPlaceHolder1_txtFinalized").val()); 保存旧值但这不起作用它总是打印出当前值
  • 只需执行 val4 != $("#ContentPlaceHolder1_txtFinalized").val() 然后执行 val4 = $("#ContentPlaceHolder1_txtFinalized").val();检查后。
猜你喜欢
  • 2011-06-19
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多