仅选择一个复选框(并取消选择其余部分),如果选中了复选框,则显示输入字段

发布于 2024-11-05 19:15:44 字数 631 浏览 0 评论 0原文

  1. 我有一个带有“是”和“否”作为两个复选框的表单。这些最初是未经选择的。我希望用户只选择其中之一,如果他们不想做出决定,则可以选择取消选择(这就是我不使用单选按钮的原因)。选择“是”应取消选择“否”,反之亦然。我不知道该怎么做。我正在使用 PHP (codeigniter)、Javascript 和 JQuery。

  2. 其次,选择“是”或“否”后,需要显示一个输入字段。我已经有了这个设置,但它会切换“onclick”操作,这意味着选择“是”两次显示并隐藏输入字段!我希望输入字段在选择“是”或“否”时显示,如果未选择“是”和“否”则消失。

    <块引用>
    $do_toggle = "onClick=\"javascript:toggle('togglenote');\"";
    
    echo form_radio('决定'.$key,'y',FALSE,$do_toggle)."是";
    
    echo form_radio('决定'.$key,'n',FALSE,$do_toggle)."否";
    
    回显 form_input($mytext);
    
    // 我在上面的 form_input 周围放置了一个 div 标签
    // 但它没有显示在 StackOverflow 问题中...
    // 但它的存在是为了让切换工作。
    
  1. I have a form with "Yes" and "No" as two checkboxes. These come in unselected at first. I'd like the user to only select one of these with the option to deselect their choice if they don't want to make a decision (which is why I didn't use radio buttons). Selecting Yes should deselect No and vice versa. I'm not sure how to do this. I'm using PHP (codeigniter), Javascript and JQuery.

  2. Secondly, after either Yes or No is selected, an input field needs to be displayed. I've got this setup but it toggles on the "onclick" action, which means selecting Yes twice shows and hides the input field! I want the input field to show if Yes or No are selected and disappear if the both Yes and No are unselected.

    $do_toggle = "onClick=\"javascript:toggle('togglenote');\"";
    
    echo form_radio('decision'.$key,'y',FALSE,$do_toggle)."Yes ";
    
    echo form_radio('decision'.$key,'n',FALSE,$do_toggle)."No";
    
    echo form_input($mytext);
    
    // I put a div tag around the form_input above
    // but it's not showing in the StackOverflow question...
    // but it's there for the toggle to work.
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

与他有关 2024-11-12 19:15:44

假设你的 html 是这样的(我认为是这样):

<input type="checkbox" name="decisionY" value="y" /> Yes
<input type="checkbox" name="decisionN" value="N" /> Yes
<input type="text" id="togglenote" name="togglenote" />

你的 js 是:

$(document).ready(function(){
  $(":checkbox[name^='decision']").change(function(){
     if($(this).is(":checked")){
        $(":checkbox[name[^='decision']").attr("checked", false); //Uncheck the other
        $(this).attr("checked", true);
        $("#togglenote").show();
     }
     if($(":checkbox[name^='decision']:checked").size() == 0){
        $("#togglenote").hide();
     }
  });
});

希望这有帮助。干杯。

Assuming your html is like this (i think it is):

<input type="checkbox" name="decisionY" value="y" /> Yes
<input type="checkbox" name="decisionN" value="N" /> Yes
<input type="text" id="togglenote" name="togglenote" />

Your js would be:

$(document).ready(function(){
  $(":checkbox[name^='decision']").change(function(){
     if($(this).is(":checked")){
        $(":checkbox[name[^='decision']").attr("checked", false); //Uncheck the other
        $(this).attr("checked", true);
        $("#togglenote").show();
     }
     if($(":checkbox[name^='decision']:checked").size() == 0){
        $("#togglenote").hide();
     }
  });
});

Hope this helps. Cheers.

笑脸一如从前 2024-11-12 19:15:44

这应该做你想要的:

$("#checkbox1").change(function() {

if ($(this).attr("checked") && $("#checkbox2").attr("checked")) {
   $("checkbox2").removeAttr("checked");
} else if ($(this).attr("checked")) {
   $("#inputfield").show();
} else {
   $("#inputfield").hide();
}
});


$("#checkbox2").change(function() {

if ($(this).attr("checked") && $("#checkbox1").attr("checked")) {
   $("checkbox1").removeAttr("checked");
} else if ($(this).attr("checked")) {
   $("#inputfield").show();
} else {
   $("#inputfield").hide();
}
});

This should do what you want:

$("#checkbox1").change(function() {

if ($(this).attr("checked") && $("#checkbox2").attr("checked")) {
   $("checkbox2").removeAttr("checked");
} else if ($(this).attr("checked")) {
   $("#inputfield").show();
} else {
   $("#inputfield").hide();
}
});


$("#checkbox2").change(function() {

if ($(this).attr("checked") && $("#checkbox1").attr("checked")) {
   $("checkbox1").removeAttr("checked");
} else if ($(this).attr("checked")) {
   $("#inputfield").show();
} else {
   $("#inputfield").hide();
}
});
林空鹿饮溪 2024-11-12 19:15:44
  1. 选择其中之一作为 jQuery 或 javascript
  2. 不要认为这是 100% 保证某些黑客无法同时设置和发布:)
  3. 根据设置的是/否值分析 $_REQUEST 数组
  4. 做出决定。

附言。 JQuery 无法在我的诺基亚 6303c :) 设备上工作,硬编码 - 可以工作......所以应用程序必须有 2 个部分。

  1. select one of them as jQuery or javascript
  2. Dont think that this is 100% garantee that some hacker can't set up both and post :)
  3. Analise $_REQUEST array against setted up both yes/no values
  4. Make decision.

PS. JQuery works not at my nokia 6303c :) device, hard coded - will work ... so application must have 2 parts.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文