jquery触发器 – ‘更改’功能

我有一个名为“pick_up_point”的单选按钮,我有一个更改处理程序来检测被检查的单选按钮.在更改处理程序中,我调用一个函数“clearFields()”,它基本上清除了输入字段.
function clearFields()
{
 $("#Enquiry_start_point").val("");
 $("#Enquiry_start_town").val("");
 $("#Enquiry_start_postcode").val("");
}

$("input[name='pick_up_point']").change(function()
{
 if($("input[name='pick_up_point']:checked").val() == "pick_up_airport")
 {
  $("#pick_up_airport_div").slideDown();
  $("#start_point_div").hide();
  clearFields();
 }
});

我还有一个触发器,如果​​由于验证错误重新显示表单,它将保留视图.

$('input[name=\'pick_up_point\']').trigger('change');

现在当我发布表单时,触发器运行并调用更改处理程序,当然它运行clearFields()函数.那我怎么能解决这个问题呢?我不希望在重新显示表单时清除字段.

解决方法

尝试使用自定义事件处理程序,如下所示:
$("input[name='pick_up_point']").change(function()
{
    $(this).trigger("displayForm");
    clearForm();
});

$("input[name='pick_up_point']").bind("displayForm",function() {
 if($("input[name='pick_up_point']:checked").val() == "pick_up_airport")
 {
  $("#pick_up_airport_div").slideDown();
  $("#start_point_div").hide();
 }
});

因此,不是触发change事件,而是触发自定义displayForm处理程序,如下所示:

$('input[name=\'pick_up_point\']').trigger('displayForm');

现在,当触发更改时,它会按预期工作,但对于显示表单而不清除输入字段的特殊情况,您只需触发新的自定义事件处理程序即可.

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...