单击按钮时,我在输入元素上更改name属性时遇到问题。
我有3个按钮:
*添加Renter
*删除客户
*更新客户
这是输入元素:
<input type=\"checkbox\" name=\"todelete[]\" value=\"$busRow[0]\" class=\"check\" />
$ busRow是用户的ID ..
将表单提交给php脚本,该脚本检查设置了什么按钮并对该按钮执行不同的操作。当用户单击删除时,它会循环访问并删除todelete[]
数组中的每个客户。当用户单击“更新客户”按钮时,我想将复选框输入的名称更改为“id”。然后我的php脚本将获取用户的id而不是获取数组值,然后将用户重定向到Update Customer页面,其中id存储在URL上。
这是我在页面底部使用的javascript:
<script type="text/javascript">
$("button").click(function () {
if ($(this).text() == "Update Customer") {
$('input.check').attr("name", "id");
}
});
</script>
当我到达更新客户页面时,URL中没有ID,我无法根据ID提取任何值:(
答案 0 :(得分:1)
尝试在if语句中放置一个警告,以检查它是否真的变为真,以缩小可能的原因。
此外,我从未见过将input.check用作选择器。也许给按钮一个id:
<input id=\"customercheck\" type=\"checkbox\" name=\"todelete[]\" value=\"$busRow[0]\" class=\"check\" />
然后通过ID更改属性,如下所示:
$('#customercheck').attr("name", "id");
如果您稍后在该字段中向该字段添加其他输入,也可以保存您。
答案 1 :(得分:1)
您将名称值设置为“id”,而不是value
中存储的值。试试这个:
$("button").click(function () {
if ($(this).text() == "Update Customer") {
var element = $('input.check');
element.attr("name", element.attr("value"));
}
});
虽然,我认为当点击的btn为“更新”时,您只需简单地传递输入标记的value
而不是name
。这样可以省去改变这些不同属性的麻烦,并可以省去麻烦。
编辑:我正在再次阅读OP并看到您要将名称att设置为“id”而不是用户的ID?你的问题很模糊,很难理解你想要做什么。你遗漏了抓住这个“id”的重要代码并重定向用户。
Edit2:你的字符串连接之间的分号是什么?我希望这不在您的源代码中。现在看到你的重定向代码。我认为您的问题在于尝试使用'input.check'选择器更改标记的属性/值。我还会说你应该重新设计你实现这个的方式。您的复选框不应包含您的用户信息。但无论如何,我认为您甚至不需要更改name
值。如果update
isset(),则只需制作$id = (its current name value);
下载firebug即可调试您的javascript代码。 Firebug还会向您显示代码中看不到的错误。它可以帮到你很多