Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改input:hidden tag not working-jQuery中name attr的值_Jquery_Ajax_Forms_Attr - Fatal编程技术网

更改input:hidden tag not working-jQuery中name attr的值

更改input:hidden tag not working-jQuery中name attr的值,jquery,ajax,forms,attr,Jquery,Ajax,Forms,Attr,下面的表单有一个隐藏的输入标签。在表单提交和响应返回时,我想更改隐藏输入名称的名称,使其值为_REMOVE__。然后,在再次提交表单的响应时,我希望它返回到uuu添加,等等。但是,代码对我不起作用,表单上的名称=\uuu ADD\uuuu从未更改。我对jQuery非常陌生,请原谅我的无知。请注意,_青铜__的值永远不应该更改-后端PHP要求名称更改 表格: jQuery: 不是在做你想的事。您实际上是在设置该字段的名称,而不是询问它是否存在 使用 注意,长度得到一个整数。如果没有它,您将返回一个

下面的表单有一个隐藏的输入标签。在表单提交和响应返回时,我想更改隐藏输入名称的名称,使其值为_REMOVE__。然后,在再次提交表单的响应时,我希望它返回到uuu添加,等等。但是,代码对我不起作用,表单上的名称=\uuu ADD\uuuu从未更改。我对jQuery非常陌生,请原谅我的无知。请注意,_青铜__的值永远不应该更改-后端PHP要求名称更改

表格:

jQuery:

不是在做你想的事。您实际上是在设置该字段的名称,而不是询问它是否存在

使用

注意,长度得到一个整数。如果没有它,您将返回一个对象,即使其长度为0,也是如此

然而,看看这个-同样的事情,更少的代码

不是在做你想的事。您实际上是在设置该字段的名称,而不是询问它是否存在

使用

注意,长度得到一个整数。如果没有它,您将返回一个对象,即使其长度为0,也是如此


但是,看看这个-同样的东西,更少的代码

或者只使用:ifform.find'input:hidden.attr'name'='which'{…}form.find'input:hidden.attr'name'返回它匹配的第一个元素的名称。它在给出的示例中可以工作,但另一个隐藏字段可能会以该形式添加,并且可能恰好在我们需要检查的字段之前。事情可能会改变,所以我不建议依赖一些容易破坏的东西。同意,我只是想指出,他实际上可以使用jQuery attr函数来检查属性是否具有特定值,而不是其他值。我喜欢你的答案和方法,但我只是认为Cocoanob知道这一点是很好的。指出一个方法可能会受到其他地方的更改的影响,如果它有可能被破坏,这很公平,但总是很有帮助的。实际上是一个类,因为OP在表单上使用了一个类,然后在form.find上使用了一个类,这表明页面上有不止一个表单。这也意味着像Josep建议的那样使用'name'=''ADD'.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。它在给出的示例中可以工作,但另一个隐藏字段可能会以该形式添加,并且可能恰好在我们需要检查的字段之前。事情可能会改变,所以我不建议依赖一些容易破坏的东西。同意,我只是想指出,他实际上可以使用jQuery attr函数来检查属性是否具有特定值,而不是其他值。我喜欢你的答案和方法,但我只是认为Cocoanob知道这一点是很好的。指出一个方法可能会受到其他地方的更改的影响,如果它有可能被破坏,这很公平,但总是很有帮助的。实际上是一个类,因为OP在表单上使用了一个类,然后在form.find上使用了一个类,这表明页面上有不止一个表单。这也意味着像Josep建议的那样使用'name'=''ADD'。
<form action="cart.php" method="post" class="cart-ajax">
    <input type="hidden" name="__ADD__" value="__BRONZE__" />
    <br><button type="submit" class="add-more-top dark cart-button-eight">Add to Cart</button>
    <div class="cart-ajax-response"></div>
</form>
$(document).ready(function() {

// code here snipped out to keep this question short

    // Shopping Cart Form
    $("form.cart-ajax").submit(function(e) {
            e.preventDefault();
            var form = $(this);

            // update the submit buttons text on form submission
            if(form.find('input:hidden').attr('name', '__ADD__'))
            {
                    form.find('button:submit').html('Adding...');
            }
            else if(form.find('input:hidden').attr('name', '__REMOVE__'))
            {
                    form.find('button:submit').html('Removing...');
            }

            $.post(form.attr('action'), form.serialize(),
                    function(data) {

                            // update the submit buttons text after successful response 
                            // update the hidden form field with the opposite of the current value
                            if(form.find('input:hidden').attr('name') == '__ADD__')
                            {
                                    form.find('button:submit').html('Remove');
                                    form.find('input:hidden').attr('name', '__REMOVE__');
                            }
                            else if(form.find('input:hidden').attr('name') == '__REMOVE__')
                            {
                                    form.find('button:submit').html('Add');
                                    form.find('input:hidden').attr('name', '__ADD__');
                            }

                            // do something with the returned data - used in cart-ajax-response div
                            form.find('.cart-ajax-response').empty().html(data.aResults[0]);

                    }, 'json');
    });
}); // <-- document ready
if(form.find('input:hidden').attr('name', '__ADD__'))
if(form.find('input[name="__ADD__"]').length)