单击按钮时,更改输入元素上的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还将向您显示代码中的错误,否则将无法看到。它应该对您有很大帮助

10-07 14:06
查看更多