Javascript 选中时创建一个复选框,它应显示某些输入字段&;隐藏模式中的其他输入字段

Javascript 选中时创建一个复选框,它应显示某些输入字段&;隐藏模式中的其他输入字段,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我一直试图用jQuery实现这一点,但它并没有正常工作,我也对压缩代码的方法做了大量的研究。我试图用一个三元运算符来压缩这个语句。如果你能帮助我一个可能的解决方案,这将是伟大的!谢谢(三元溶液会很神奇)我们不会写这样的代码。每次代码检查都失败 这样做: $('#isASeasonal')。单击(函数(){…}) 我们不会这样写代码。每次代码检查都失败 这样做: $('#isASeasonal')。单击(函数(){…}) 代码的问题是,由于代码中的控制台.log(“X”)调用弄乱了输入元素的属性,

我一直试图用jQuery实现这一点,但它并没有正常工作,我也对压缩代码的方法做了大量的研究。我试图用一个三元运算符来压缩这个语句。如果你能帮助我一个可能的解决方案,这将是伟大的!谢谢(三元溶液会很神奇)

我们不会写这样的代码。每次代码检查都失败

这样做:

$('#isASeasonal')。单击(函数(){…})


我们不会这样写代码。每次代码检查都失败

这样做:

$('#isASeasonal')。单击(函数(){…})


代码的问题是,由于代码中的
控制台.log(“X”)
调用弄乱了
输入元素的属性,因此HTML中的引号不匹配。如果您检查控制台,您很可能会看到一些与此相关的错误

正是由于这个原因,在许多其他原因中,使用内联脚本(或CSS样式)被认为是不好的做法。另一个问题是,它不利于分离关注点,并使代码更难阅读。更好的做法是使用不引人注目的Javascript附加事件处理程序,如下所示:

<script>
    myFunction(myCheckBox)
    {
        if(myCheckBox.Checked)
        {
           console.log('Worky'); 
           $('#ShowIfChecked').show(); 
           $('#HideIfChecked').hide(); 
        } 
        else 
        { 
           $('#HideIfChecked').show(); console.log("No Worky");
        }  
    }
</script>
$('.seasonal checkbox').change(函数(){
$('#ShowIfChecked').toggle(this.checked);
$('HideIfChecked')。切换(!this.checked);
});
#ShowIfChecked{
显示:无;
}

选中的!

没有检查代码的问题是,由于代码中的
console.log(“X”)
调用弄乱了
input
元素的属性,因此HTML中的引号不匹配。如果您检查控制台,您很可能会看到一些与此相关的错误

正是由于这个原因,在许多其他原因中,使用内联脚本(或CSS样式)被认为是不好的做法。另一个问题是,它不利于分离关注点,并使代码更难阅读。更好的做法是使用不引人注目的Javascript附加事件处理程序,如下所示:

<script>
    myFunction(myCheckBox)
    {
        if(myCheckBox.Checked)
        {
           console.log('Worky'); 
           $('#ShowIfChecked').show(); 
           $('#HideIfChecked').hide(); 
        } 
        else 
        { 
           $('#HideIfChecked').show(); console.log("No Worky");
        }  
    }
</script>
$('.seasonal checkbox').change(函数(){
$('#ShowIfChecked').toggle(this.checked);
$('HideIfChecked')。切换(!this.checked);
});
#ShowIfChecked{
显示:无;
}

选中的!

没有检查
您可以将您的
onclick
更改为一个函数,因为至少对我来说,更容易看到真正发生了什么

所以改变

<input type="checkbox" runat="server" name="Seasonal" value="Seasonal" id="isASeasonal" onclick=" if ($(this).is(':checked')) { console.log('Worky'); $('#ShowIfChecked').show(); $('#HideIfChecked').hide(); } else { $('#HideIfChecked').show(); console.log("No Worky"); }" />


在你看来:

<input type="checkbox" runat="server" 
    name="Seasonal" value="Seasonal" id="isASeasonal" onclick="myFuncton(this)" />

myFunction(myCheckBox)
{
如果(myCheckBox.Checked)
{
console.log('Worky');
$('#ShowIfChecked').show();
$('HideIfChecked').hide();
} 
其他的
{ 
$('HideIfChecked').show();console.log(“无工作”);
}  
}
现在,要获得所需的表达式/三元解决方案,可以将此脚本更改为如下所示:

<script>
    myFunction(myCheckBox)
    {
        if(myCheckBox.Checked)
        {
           console.log('Worky'); 
           $('#ShowIfChecked').show(); 
           $('#HideIfChecked').hide(); 
        } 
        else 
        { 
           $('#HideIfChecked').show(); console.log("No Worky");
        }  
    }
</script>

myFunction(myCheckBox)
{
myCheckBox.Checked?(console.log('Worky'),$('#ShowIfChecked').show(),
$('HideIfChecked').hide();:($('HideIfChecked').show(),console.log(“无工作”);
}

您可以将您的
onclick
更改为一个函数,因为至少对我来说,更容易看到真正发生了什么

所以改变

<input type="checkbox" runat="server" name="Seasonal" value="Seasonal" id="isASeasonal" onclick=" if ($(this).is(':checked')) { console.log('Worky'); $('#ShowIfChecked').show(); $('#HideIfChecked').hide(); } else { $('#HideIfChecked').show(); console.log("No Worky"); }" />


在你看来:

<input type="checkbox" runat="server" 
    name="Seasonal" value="Seasonal" id="isASeasonal" onclick="myFuncton(this)" />

myFunction(myCheckBox)
{
如果(myCheckBox.Checked)
{
console.log('Worky');
$('#ShowIfChecked').show();
$('HideIfChecked').hide();
} 
其他的
{ 
$('HideIfChecked').show();console.log(“无工作”);
}  
}
现在,要获得所需的表达式/三元解决方案,可以将此脚本更改为如下所示:

<script>
    myFunction(myCheckBox)
    {
        if(myCheckBox.Checked)
        {
           console.log('Worky'); 
           $('#ShowIfChecked').show(); 
           $('#HideIfChecked').hide(); 
        } 
        else 
        { 
           $('#HideIfChecked').show(); console.log("No Worky");
        }  
    }
</script>

myFunction(myCheckBox)
{
myCheckBox.Checked?(console.log('Worky'),$('#ShowIfChecked').show(),
$('HideIfChecked').hide();:($('HideIfChecked').show(),console.log(“无工作”);
}

季节性地址:
$('#ShowIfChecked').hide()//隐藏如果选中需要显示的内容。
$(“#isASeasonal”)。单击(函数(){//Used click event on复选框
($(“#isASeasonal”).is(':checked')?(console.log('worky'),$('ShowIfChecked').show(),$('HideIfChecked').hide()):(console.log('no worky'),$('HideIfChecked').show(),$('ShowIfChecked').hide());
修复我的问题的是,在ASP.net中,我需要添加clientidmode=“static”对于我试图隐藏的部门。我仍然不明白原因,我目前正在深入研究,但这对我来说是有效的,但在上面,你可以看到三元运算符的大部分最终产品!!耶。

季节性地址:
$('#ShowIfChecked').hide();//隐藏选中时需要显示的内容。
$(“#isASeasonal”)。单击(函数(){//Used click event on复选框
($(“#isASeasonal”).is(':checked')?(console.log('worky'),$('ShowIfChecked').show(),$('HideIfChecked').hide()):(console.log('no worky'),$('HideIfChecked').show(),$('ShowIfChecked').hide());

修复我的问题的是,在ASP.net中,我需要添加clientidmode=“static”对于我试图隐藏和显示的div。我仍然不明白为什么,我目前正在深入研究它,但这对我来说是有效的,但在上面,你可以看到大多数带有三元运算符的最终产品!!耶。

你能显示HTML吗?还有你尝试过的内容吗?你能显示HTML吗?还有你尝试过的内容吗是的,我知道有一个外部脚本文件。内部脚本是由一个队友放置的,这是他让它工作的唯一方法。我目前正在尝试重新组织他的代码。虽然脚本可以工作