Javascript 调用第二个函数后启用字段函数触发器

Javascript 调用第二个函数后启用字段函数触发器,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我需要一些关于两个jQuery函数排序的帮助(不确定这是否是正确的术语),以便两者可以共存 我想做的是添加一个新功能,让用户无法编辑字段,比如disabled=“disabled”。问题是,如果我只将disabled=“disabled”应用于该字段,表单将不会随表单提交一起发送其值 因此,我编写了一些JS代码,它在提交之前启用这些字段,并允许在提交表单时发送它们的值 加载页面后,所有工作正常 问题是当用户将其中一个必填字段留空并尝试提交表单时。然后还有另一个jQuery被激发——用来验证字段内

我需要一些关于两个jQuery函数排序的帮助(不确定这是否是正确的术语),以便两者可以共存

我想做的是添加一个新功能,让用户无法编辑字段,比如
disabled=“disabled”
。问题是,如果我只将
disabled=“disabled”
应用于该字段,表单将不会随表单提交一起发送其值

因此,我编写了一些JS代码,它在提交之前启用这些字段,并允许在提交表单时发送它们的值

加载页面后,所有工作正常

问题是当用户将其中一个必填字段留空并尝试提交表单时。然后还有另一个jQuery被激发——用来验证字段内容

第二个验证函数触发“启用字段”函数,所有字段再次可编辑

需要一些关于如何防止第二个函数重写enable函数的帮助

下面是代码-enable函数放在表单的前面,如下所示:

<script>
jQuery(function($) {    
    $('form').bind('submit', function() {
        $(this).find(':input').removeAttr('disabled');
    });

});
 </script>     

    <form name="RegFrm" id="RegFrm" action="" method="post">
          <select class="validate[required] text-input" disabled="disabled">
              <option value="">Please Select</option>
          </select>
          <input name="sbtFrm" type="submit" value="Submit" />
    </form>
如何防止第二个函数触发第一个函数


谢谢?

谢谢大家的评论。虽然,并没有提出解决方案,但你们给了我一个解决方案

我基本上决定检查表单提交,如果表单验证,并且只有当为true时,启用函数才会触发

代码如下:

jQuery(function($) {    
    $('form').bind('submit', function() {
        if($("#RegFrm").validationEngine('validate')){
            $(this).find(':input').removeAttr('disabled');
        };
    });

});

只是把代码放在验证的末尾,这会再次禁用字段吗?这似乎是一个固有的问题,因为您在提交时正在删除disabled-属性。已尝试过此操作,但无效:(
$(this).find(“:input”).removeAttr('disabled'))
这似乎是在删除
disabled
属性,从而在单击submit按钮后启用字段?还是我误解了?@CalvinScherle我想这就是问题所在。字段被禁用,用户无法更改。提交后,这些字段将被重新启用,并与表单一起提交。@BradG T我使用
.prop('disabled',false)
而不是removeAttr,然后在验证
.prop('disabled',true)
之后,完全删除无法用jQuery重新启用的属性会出现一些问题。我明白了,我猜下面的句子“我写了一些JS代码,它禁止编辑想要的字段,并且仍然发送它们的值”让我感到困惑,这意味着即使字段被禁用,他也得到了要发送的数据。
jQuery(function($) {    
    $('form').bind('submit', function() {
        if($("#RegFrm").validationEngine('validate')){
            $(this).find(':input').removeAttr('disabled');
        };
    });

});