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