jQuery,单选按钮的动态名称更改

时间:2009-07-13 19:23:35

标签: javascript jquery html dom radio-button

寻找类似的东西:

$("input:radio:checked").previous("name", "original_name").attr("name","new_name");

我在这里尝试了几个不同的但是大多数都得到错误:预期的对象

感谢任何帮助。

3 个答案:

答案 0 :(得分:7)

正如Ben S在对原始问题的评论中写道,为什么需要更改名称?

假设你有

<input type="radio" name="myRadio" id="radioChoice1" value="radioChoice1Value" />
<input type="radio" name="myRadio" id="radioChoice2" value="radioChoice2Value" />

如果用户选择“radioChoice1”并单击“提交”,则浏览器将发送

你的CGI脚本的

myRadio = radioChoice1Value 。您可以根据需要进行处理。

如果您坚持要更改名称属性,我不确定代码中的“上一个”方法是什么。

你能试试吗,

$("input:radio:checked").attr("name","new_name");

看看它是否有效?

我可以想象,如果您尝试更改name属性,可能会出现跨浏览器问题。 您可以创建隐藏输入并存储用户选择的单选按钮的名称。

<input type="hidden" id="selectedRadioButton" />

$('#selectedRadioButton').val($("input:radio:checked").attr('name'));

修改

请发布您的HTML,以便我可以告诉您将哪些值发布到CGI。

例如,如果你有

<input type="radio" name="transactionType" id="buy" value="buy" />
<input type="radio" name="transactionType" id="sell" value="sell" />

如果用户点击第一个单选按钮'buy',那么在你的CGI脚本中,'transactionType'的值将是'buy'。

答案 1 :(得分:2)

我同意其他人认为有一个比重命名输入更好的解决方案。

话虽如此,并回答您的原始问题 - 我建议您将ID分配给您的无线电输入,然后使用此代码:

$("#inputId").attr("name","new_name");

我不明白你使用 .previous() - 我在jQuery文档中找不到它。

答案 2 :(得分:2)

这是一个执行所请求作业的jQuery脚本。我正在使用它来重命名表单上的所有input = text字段。虽然我没有用收音机或复选框做任何事情,但我添加了相关的案例陈述。根据需要插入您的收音机/复选框变换。

    function renameTextInputFields(ele) {
        var i = 0;
        $(ele).find(':input').each(function() {
            switch(this.type) {
                case 'text':
                    $(this).attr("name","textFieldNumber"+(++i));
                    break;
                case 'checkbox':
                case 'radio':
            });
    }

在DOM元素上调用此方法。我自己,我正在一个表格中克隆一个div。 div有很多文本字段。我得到了这样的基本元素。

var clone = $('.classAssignedToMyDiv').clone(); 

它在IE 8.x和Firefox 3.x中运行良好