如何解决用布尔值清除切换时的val
| 我有一个隐藏的div,其中包含表单元素,可以在单选选项中进行切换(请选择是/否) 如果他们选择是,则显示div并要求输入字段,否则隐藏div并清除字段(如果它们输入了任何值)。 除了通过将布尔值标志传递给toggle函数清除值之外,我可以做所有这些事情 例:$(\"[name=nameOfElement]\").change(function() {
var show = $(\'input[name=nameOfElement]:checked\').val() == \"true\";
$(\'#hiddenForm\').toggle(show);
$(\'#hiddenInput\').toggleClass(\'required\',show);
});
是否有某些东西可以清除传递的布尔选项的值?
$(\"[name=nameOfElement]\").change(function() {
var show = $(\'input[name=nameOfElement]:checked\').val() == \"true\";
$(\'#hiddenForm\').toggle(show);
$(\'#hiddenInput\').toggleClass(\'required\',show).valClear(show);
});
更新:不寻找插件只是想知道我是否可以在没有if / else条件的情况下做到这一点
解决方法
也许
$(\"[name=nameOfElement]\").change(function() {
var show = $(\'input[name=nameOfElement]:checked\').val() == \"true\";
$(\'#hiddenForm\').toggle(show);
$(\'#hiddenInput\').toggleClass(\'required\',show).val(show ? $(\'#hiddenInput\').val() : \'\');
});
,您可以附加多个更改处理程序:
$(\"[name=nameOfElement]\").change(function() {
var show = $(\'input[name=nameOfElement]:checked\').val() == \"true\";
$(\'#hiddenForm\').toggle(show);
$(\'#hiddenInput\').toggleClass(\'required\',show);
});
$(\"[name=nameOfElement]\").change(function() {
if($(\'input[name=nameOfElement]:checked\').val() == \"true\")
$(\'#hiddenInput\').val(\'\');
});
但这看起来比只使用一个对我有条件的处理程序更糟糕。您也可以鞭打自己的小插件来添加类似“valClear
”的内容:
(function($) {
$.fn.clearIf = function(clearIt) {
if(clearIt)
this.each(function() { $(this).val(\'\'); });
return this;
};
})(jQuery);
然后:
$(\"[name=nameOfElement]\").change(function() {
var show = $(\'input[name=nameOfElement]:checked\').val() == \"true\";
$(\'#hiddenForm\').toggle(show);
$(\'#hiddenInput\').toggleClass(\'required\',show).clearIf(!show);
});
如果我只是在一个地方这样做,我会采用罗恩的三元方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。