单击按钮时,更改输入元素上的name属性遇到了问题。
我有3个按钮:
*添加承租人
*删除客户
*更新客户
这是输入元素:<input type=\"checkbox\" name=\"todelete[]\" value=\"$busRow[0]\" class=\"check\" />
$ busRow是用户的ID。
表单被提交到一个php脚本,该脚本检查以查看设置了什么按钮并对该按钮执行不同的操作。当用户单击删除时,它会循环遍历并删除todelete[]
数组中的每个客户。当用户单击“更新客户”按钮时,我想将复选框输入的名称更改为“ id”。然后,我的php脚本将获取用户的ID,而不是获取数组值,然后将用户重定向到具有存储在URL上的ID的“更新客户”页面。
这是我在页面底部使用的javascript:
<script type="text/javascript">
$("button").click(function () {
if ($(this).text() == "Update Customer") {
$('input.check').attr("name", "id");
}
});
</script>
当我进入“更新客户”页面时,URL中没有ID,并且我无法根据ID提取任何值:(
最佳答案
您将名称值设置为“ id”,而不是存储在value
中的值。尝试这个:
$("button").click(function () {
if ($(this).text() == "Update Customer") {
var element = $('input.check');
element.attr("name", element.attr("value"));
}
});
虽然,我认为当btn单击为'Update'时,您只需传递输入标签的
value
而不是name
。这样可以避免更改这些不同属性的麻烦,并且可以避免麻烦。编辑:我再次阅读OP,看到您想将名称att设置为“ id”而不是用户的ID ???您的问题很模糊,很难理解您要做什么。您将忽略获取此“ id”并重定向用户的关键代码。
Edit2:字符串concat之间的分号是怎么回事?我希望这不在您的源代码中。现在看到您的重定向代码。我认为您的问题出在试图通过'input.check'选择器更改标签的属性/值。我还要说的是,您应该重新设计实现此方法的方式。您的复选框不应包含您的用户信息。但是无论如何,我认为您甚至不需要更改
name
值。如果update
isset(),则只需使$id = (its current name value);
下载firebug来调试您的javascript代码。 Firebug还将向您显示代码中的错误,否则将无法看到。它应该对您有很大帮助