0

我想用 jQuery 做的事情是让我可以在同一组中使用三个单选按钮。When one is selected the other two shouldn't be active. 我希望能够使用 jQuery 在最终结果中显示单独的 HTML 块,但是我无法使用我正在使用的东西来正确运行一些简单的东西。

这是我目前必须使用的代码:

    $(document.ready(function()
{
    $("input[name='rdiobut']").change(function(){
        if ($("input['rdiobut']:checked".val() == 'a'))
        $("#rdiocont").text("There is no expiration date.");
        else if ($("input[name='rdiobut']:checked".val() == 'b'))
        $("#rdiocont").text("Tell me how many days until expire");
        else ($("input[name='rdiobut']:checked".val() == 'c'))
        $("#rdiocont").text("Pick the date to expire from a calendar");
    });
});

这是 jQuery 转到的表:

<tr><td>Expire Settings:</td><td>Does Not Expire: <input type="radio" name="rdiobut" value="a" checked="check" /> &nbsp;&nbsp;&nbsp;<strong>OR</strong> Expires By Days <input type="radio" name="rdiobut" value="b" /> &nbsp;&nbsp;&nbsp;<strong>OR</strong> Select a Date to Expire On <input type="radio" name="rdiobut" value="c" /></td></tr><tr id="rdiocont"><td>No Expiration Date</td></tr><tr id="rdiocont"><td>Expires by Days</td></tr><tr id="rdiocont"><td>Choose Expiration by Calendar</td></tr>

有人对我可能做错的事情有任何建议或想法吗?

4

2 回答 2

1

好的,您的代码中有一些错误。在这里你有它,所有清理和工作就像我认为你想要的那样(工作示例):

jQuery

$(document).ready(function()
{
    $("input[name='rdiobut']").change(function(){
        if ($("input[name='rdiobut']:checked").val() == 'a')
            $("#rdiocont").text("There is no expiration date.");
        else if ($("input[name='rdiobut']:checked").val() == 'b')
            $("#rdiocont").text("Tell me how many days until expire");
        else if ($("input[name='rdiobut']:checked").val() == 'c')
            $("#rdiocont").text("Pick the date to expire from a calendar");
    });
});

HTML

<table>
    <tr>
        <td>Expire Settings:</td>

        <td>
            Does Not Expire: 
            <input type="radio" name="rdiobut" value="a" checked="checked" /> &nbsp;&nbsp;&nbsp;
            <strong>OR</strong> 
            Expires By Days 
            <input type="radio" name="rdiobut" value="b" /> &nbsp;&nbsp;&nbsp;
            <strong>OR</strong> 
            Select a Date to Expire On 
            <input type="radio" name="rdiobut" value="c" />
        </td>
    </tr>

    <tr id="rdiocont">
        <td>(Select an option)</td>
    </tr>

</table>

一些注意事项:

  • 不要对各种元素使用相同的 id(就像你在 中使用的那样<tr id="rdiocont">);
  • 是的$(document).ready,不是$(document.ready- 等待结束)
  • 就像@Ryan 所说,不要评估 else 语句中的表达式。如果您真的想评估表达式,请继续使用else if(不一定要有 else 语句)。
  • 在您的第一次评估中,它是input[name='rdiobut']而不是input['rdiobut']。你也没有关闭)之后:checked"
于 2012-12-14T22:31:57.970 回答
0

首先,你的最后一个 else 语句,你试图评估一个表达式,就好像它是一个 if 语句一样。

其次,这是单选按钮的默认行为,只要它们具有相同的名称。

于 2012-12-14T21:36:40.477 回答