使用按钮单击功能更改复选框输入名称

时间:2011-04-25 16:31:29

标签: php javascript

单击按钮时,我在输入元素上更改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提取任何值:(

2 个答案:

答案 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还会向您显示代码中看不到的错误。它可以帮到你很多