Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用布尔值清除切换上的val_Jquery - Fatal编程技术网

Jquery 使用布尔值清除切换上的val

Jquery 使用布尔值清除切换上的val,jquery,Jquery,我有一个隐藏的div,其中包含表单元素,我可以切换到单选选项(将yes/no作为选项) 如果选择“是”,则显示div并需要字段,否则隐藏div并清除字段(如果他们输入了任何值) 除了通过将布尔标志传递给toggle函数来清除值之外,我可以执行所有这些操作 例如: $("[name=nameOfElement]").change(function() { var show = $('input[name=nameOfElement]:checked').val() == "true";

我有一个隐藏的div,其中包含表单元素,我可以切换到单选选项(将yes/no作为选项)

如果选择“是”,则显示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);
});

如果我只是在一个地方做这件事,我会使用Ron的三元方法。

您可以附加多个更改处理程序:

$("[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);
});
如果我只是在一个地方做这件事,我会采用罗恩的三元方法