寻找类似的东西:
$("input:radio:checked").previous("name", "original_name").attr("name","new_name");
我在这里尝试了几个不同的但是大多数都得到错误:预期的对象
感谢任何帮助。
答案 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中运行良好