【问题标题】:Disable click event and call it on blur event of select dropdown using Jquery禁用单击事件并使用 Jquery 在选择下拉菜单的模糊事件上调用它
【发布时间】:2016-09-22 05:31:17
【问题描述】:

我有多个国家/地区的选择下拉列表。在此选择下拉列表的更改事件中,触发 ajax 表单提交。

  <select name='country[]' id='country' multiple='multiple'>
      <option value='1'>USA</option>
      <option value='2'>India</option>
      <option value='3'>Japan</option>
  </select>

我想禁用更改事件 ajax 表单提交并在选择下拉菜单的模糊事件时调用 ajax 提交。

如何使用 Jquery 做到这一点?

这里是关于更改的 jquery 代码

  $('#country').change(function() {
    //ajax form submit 
    $.post("form_save.php", $("#form").serialize());
  });

【问题讨论】:

  • 发布你的 js 代码。
  • 您可以使用 jquery off 方法(如 $('#country'))禁用事件。关闭(“点击”);对于 onblur ajax 调用 iy 将是 $('#country')。 blur (function() {//你的 ajax 代码}) ;

标签: jquery html ajax


【解决方案1】:

您可以使用“更改”事件

$('#country').change(function() {
  //Do your ajax stuff
});

【讨论】:

  • 我不想在更改时提交表单..那是我已经在做的了
  • 那么你将不得不使用 .blur 而不是 .change
【解决方案2】:

你能不能试试下面的逻辑:

var hasCountryChanged = false; //declare global variable
$(document).ready(function(){

    $('#country').change(function() {
        hasCountryChanged = true; //set the flag as value has been changed
    });

    $( "#country" ).blur(function() {
        // do ajax call only if value is changed; otherwise don't
        if(hasCountryChanged){
            hasCountryChanged = false; //reset the flag
            //ajax form submit 
            $.post("form_save.php", $("#form").serialize());
        }
    });
});

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多