寻找类似的东西:
$("input:radio:checked").previous("name", "original_name").attr("name","new_name");
我在这里尝试了一些不同的方法,但大部分都得到了错误:Object Expected
任何帮助表示赞赏。
寻找类似的东西:
$("input:radio:checked").previous("name", "original_name").attr("name","new_name");
我在这里尝试了一些不同的方法,但大部分都得到了错误:Object Expected
任何帮助表示赞赏。
正如 Ben S 在对您最初问题的评论中所写,为什么需要更改名称?
假设你有
<input type="radio" name="myRadio" id="radioChoice1" value="radioChoice1Value" />
<input type="radio" name="myRadio" id="radioChoice2" value="radioChoice2Value" />
如果用户选择'radioChoice1'并点击提交,浏览器将发送
myRadio=radioChoice1Value到您的 CGI 脚本。您可以根据需要进行处理。
如果您坚持更改名称属性,我不确定您的代码中的“先前”方法是什么。
你能试一下吗,
$("input:radio:checked").attr("name","new_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" />
如果用户单击第一个单选按钮“购买”,那么在您的 CGI 脚本中,“transactionType”的值将是“购买”。
这是一个执行请求的工作的 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 中运行良好
我同意其他人的观点,即有比重命名输入更好的解决方案。
话虽如此,并回答您最初的问题 - 我建议您为无线电输入分配 ID,然后使用以下代码:
$("#inputId").attr("name","new_name");
我不明白您对.previous()的使用- 我在 jQuery 文档中找不到它。