每次运行时清空javascript函数中的所有变量
我有一个javascript验证函数,如下所示- 触发器每次运行时清空javascript函数中的所有变量,javascript,Javascript,我有一个javascript验证函数,如下所示- 触发器 add_action ('wp_head', 'trigger_validatior'); function trigger_validatior() { echo' <script> jQuery(document).ready(function($) { $("#gform_submit_button_5").click(function() {
add_action ('wp_head', 'trigger_validatior');
function trigger_validatior() {
echo'
<script>
jQuery(document).ready(function($) {
$("#gform_submit_button_5").click(function() {
return Form_5_Contact_Validator(gform_5);
});
});
</script>
';
}
如果我在表单中输入的数据不正确-即,我为valOne
输入1
,我的警报会弹出
当我将valOne
中的值更正为2或更大时,不会弹出警报,但我的表单无法提交。为什么返回(false)代码>即使在更正值后仍保持活动状态
解决方案
我尝试添加return(true)代码>在函数的开头,该函数在执行验证之前仅返回true
我尝试在函数末尾添加return(true)
,但即使值正确,函数也无法完成
我尝试修改验证语句,如下所示:
var valTwo = Form.input_2.value;
if (valTwo < '1' && valTwo != ''){
alert("Error: Alert Error.");
return (false);
} else {
return (true);
}
var valTwo=Form.input_2.value;
如果(valTwo<'1'&&valTwo!=''){
警报(“错误:警报错误”);
返回(假);
}否则{
返回(真);
}
选项一
要继续进行当前的javascript验证,可以更改jQuery触发器。我相信在当前触发器中,返回值实际上返回到.ready()函数,因此,如果愿意的话,返回值会被“吸收”
此外,当函数以return false
结束时,请确保停止jQuery执行默认操作,因为默认行为是允许后续函数继续运行
请尝试修改触发器,如下所示:
<script>
jQuery(document).ready(function($) {
$("#gform_submit_button_5").click(function(event) {
if (Form_5_Contact_Validator(gform_5)) {
$(gform_5).submit();
}
event.preventDefault();
event.stopPropagation();
});
});
</script>
functions.php
可以在wp content/themes/name of theme
目录(您当前使用的主题)中找到,或者如果您和我一样,喜欢在几乎没有手的情况下进行更新,请创建一个子主题(你可以在wordpress的抄本上找到这个。本可以发布一个链接,但我没有足够的代表)
列出的最后一个寄存器/队列文件,get\u stylesheet\u directory\u uri()。“/form.js”
,与functions.php
文件位于同一个目录中,您可以将前面的代码块添加到该目录中。如果您需要,您可以在这里放置任何自定义触发器,还可以定义应进行的验证类型
get\u stylesheet\u directory\u uri()。“/form.js”
可以根据需要对错误消息进行样式设置和详细描述。请参阅验证插件文档。寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整且可验证的示例。您如何调用此函数?例如,
如果(瓦隆<'2'&&瓦隆!='')如果(瓦隆<'2'|瓦隆!='')这看起来是错误的我不理解这个问题,但是假设Form\u 5\u Contact\u Validator在每个submit
事件上运行,attempt
将始终使用2
初始化,因为它是本地的。顺便说一句,我可以看到,您在每次运行时将errorList
重置为空数组时确实存在问题,因此当尝试重新启动时如果设置为0,则不会向错误页面发送任何内容。您需要在函数外部声明errorList
,以便在以前的所有尝试中保留错误。
<script>
jQuery(document).ready(function($) {
$("#gform_submit_button_5").click(function(event) {
if (Form_5_Contact_Validator(gform_5)) {
$(gform_5).submit();
}
event.preventDefault();
event.stopPropagation();
});
});
</script>
<?php
/**
* form_add_scripts - callback for registering the form's required javascript files
*
* @return void
*/
function form_add_scripts() {
$base = array("jquery");
$custom = array("jquery", "jquery-validate-script", "jquery-validate-script-additional");
wp_register_script("jquery-validate-script", "//cdn.jsdelivr.net/jquery.validation/1.14.0/jquery.validate.min.js", $base);
wp_enqueue_script("jquery-validate-script");
wp_register_script("jquery-validate-script-additional", "//cdn.jsdelivr.net/jquery.validation/1.14.0/additional-methods.min.js", $base);
wp_enqueue_script("jquery-validate-script-additional");
wp_register_script("form-script", get_stylesheet_directory_uri()."/form.js", $custom);
wp_enqueue_script("form-script");
}
// inform wordpress of the additional scripts
add_action("wp_enqueue_scripts", form_add_scripts);
jQuery(document).ready(function ($) {
// http://jqueryvalidation.org/documentation/
$('#form-id-name').validate({
rules: {
'input-one-id-name': {
digits: true,
min: 2
},
'input-two-id-name': {
digits: true,
min: 2
}
}
});
});