【问题标题】:Retain radio button state that affects other elements保留影响其他元素的单选按钮状态
【发布时间】:2013-09-01 02:15:39
【问题描述】:

我有一个包含大量输入的表单。我正在使用 jQuery,所以如果一个人选择答案“是”,如果他们单击“否”,则会出现一个文本框,则不会出现任何内容。我的问题是当一个人提交页面并且页面运行 PHP 验证时,如果它抛出错误的页面(导致重新加载)而我可以让单选按钮记住选择的值(使用 PHP)它不会重新- 如果用户单击是,则显示文本框。

基本上: 用户选择 是的,文本框显示。用户提交页面,页面因验证错误而被退回。单选按钮会记住状态“是”,但除非重新单击“是”,否则不会显示文本框。

知道如何让文本框显示出来吗?

jQuery

$("input[name='radioButton']").change(function(){
    if ($(this).val() == "Yes")
    {
        $("#txt1").show();
    }
    else
    {
        $("#txt1").hide(); 
    }
});

【问题讨论】:

  • 使用 PHP 设置文本框的 CSS 显示属性,以根据用于设置收音机的相同条件显示/隐藏元素。

标签: jquery forms button radio


【解决方案1】:

编辑:这是正确的方法。来自瑞安亨德森的回答:

$(document).ready(function(){
    if($("input[name='radioButton'][value='Yes']").is(':checked'))
        $("#txt1").show();
    else
        $("#txt1").hide(); 
});

它不应该替换您当前的更改事件处理程序。它基本上在页面加载时检查单选按钮的值。

【讨论】:

  • 您需要在选择器中添加“:checked”。这将始终找到一个值为“是”的单选按钮,无论它是否被选中。
  • @RyanHenderson 如果添加 ":checked",如果单选按钮的状态未选中,则选择器不会返回匹配项。
  • 没错。根据 OP,“#txt1”元素应该只显示在“是”单选按钮被选中。
  • 命名单选按钮.val() 应该从组中返回当前选定的按钮。
  • @MarkH 我的方法其实是错误的。 Ryan Henderson 的答案正是您想要的。
【解决方案2】:

您可以查看页面加载时选中的单选按钮:

$(document).ready(function(){
    if($("input[name='radioButton'][value='Yes']").is(':checked'))
        $("#txt1").show();
    else
        $("#txt1").hide(); 
});

编辑:改为使用“.is(':checked')”

【讨论】:

  • RE:您的编辑:我也考虑过该选项(value=),它应该可以工作并且具有很强的描述性。
  • 感谢@Ryan Henderson 的回答,一旦我将 .load 更改为 .ready,它就可以正常工作了
  • @MarkH 哇,我不知道我为什么在那里输入“load”。当然应该“准备好”了!很高兴它对你有用。
猜你喜欢
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多