gpt4 book ai didi

javascript - 使用带有类名的参数添加 JQuery 验证插件自定义方法

转载 作者:行者123 更新时间:2023-11-30 17:32:55 24 4
gpt4 key购买 nike

我想做什么:
我需要验证是否选中了一个复选框,而不是下拉列表应该是空的,使用带有内联类名的 JQuery 验证插件(jqueryvalidation - bassistance)


我在做什么:
我正在尝试使用添加自定义验证规则JQuery 验证插件 (jqueryvalidation - bassistance) 和使用 'shouldBeEmptyIf'在复选框的类名中使用参数

/*JS function to return status of checkbox*/
function getValue(){
return $('[name=checkBox1]').prop('checked');
}


/*Form element using class for validation - JQuery validation plugin*/
<input type="checkbox" name="checkBox1" class="{shouldBeEmptyIf: [getValue() , $('[name=dropDownElement]').val())=='']}">

<select name="dropDownElement" size="1" >
<option value="1">One</option>
<option value="2">Two</option>
</select>


/*custom method added in additional-methods.js of the JQuery validation plugin*/
jQuery.validator.addMethod("shouldBeEmptyIf", function(value, element, param) {
console.log("param[0]: " + param[0] + " param[1]: " + param[1]);
return ( param[0] && param[1] );
}, "This field must be empty");


我遇到的问题:
我确实得到了 param[0] 和 param[1] 的值,但它们被“缓存”了,它们保持不变即使我更改下拉菜单或选择/取消选择复选框(还尝试添加 getValue() 函数,希望每次都能获得新的值,但没有成功)。

它在页面加载时获取初始值。加载页面时是否分配静态值?如果是这样,我如何使用带有内联类的 JQuery 验证插件来实现我想做的事情的解决方案

任何帮助和方向将不胜感激

谢谢

最佳答案

在尝试找到几种不同的方式后,我最终使用了这种方式,如果其他人正在尝试做类似的事情,我认为可能会对他们有所帮助。

我没有传递元素的值,而是传递了元素的名称(如果需要,也可以是元素的 id),并在附加方法本身中使用传递的名称/id 获取这些元素的当前值,那行得通。 .

以下是更新后的代码:

/*Updated html Form element*/
<input type="checkbox" name="checkBox1" class="{shouldBeEmptyIf: [checkBox1 , dropDownElement]}">

<select name="dropDownElement" size="1" >
<option value="1">One</option>
<option value="2">Two</option>
</select>


/*Updated additional method*/
jQuery.validator.addMethod("shouldBeEmptyIf", function(value, element, param) {
var valid =true;
if($('[name='+ param[0] +']').prop('checked') && $('[name='+ param[1] +']').val()!=''){
valid = false;
}
return valid;
}, "This field must be empty");

希望这可能有所帮助。

关于javascript - 使用带有类名的参数添加 JQuery 验证插件自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com