jQuery需要从表单输入框的值中设置变量的值

Posted

技术标签:

【中文标题】jQuery需要从表单输入框的值中设置变量的值【英文标题】:jQuery need to set variable's value from the value of a form input box 【发布时间】:2010-10-10 22:23:33 【问题描述】:

我希望获取表单输入的值。

我认为我的问题出在这一行:

    var vid = $(this).next(".pid").val();

我需要将名为 'pid' 的输入框的值发送到一个 php 页面,但是页面上有几个表单,所有表单都带有名为 'pid' 的输入框。当我只有:

next(".pid").val();

发送的值来自页面上的另一个表单。

编辑: 我真正想做的就是将“数据”设置为表单中所有数据的数组。因此,如果有更好的方法将“formdata”变量设置为表单的 id,那也可以。

下面是jQuery函数:

$(".varSel").live("change", function()
    var vid = $(this).next(".pid").val();
    var formdata = $('form#addToCart'+ vid).serialize();
    $.ajax(
        type: "POST",
        url: "library/varPrice.php",
        data: formdata,
        success: function(html)
        $('.price').html(html);
      
    );
);

编辑:

下面是一个表格:

<form name='addToCart' id='addToCart99' action='cart.php?action=add' method='post'>
    <ul class='vars' id='varlist_p99'>
        <li>
        <label for="color">color</label> 
        <select id="color" name="color" class='varSel'>
            <option>blue</option>
            <option>green</option>
            <option>red</option>
        </select>
        </li>

        <li>
        <label for="size">size</label> 
        <select id="size" name="size" class='varSel'>
            <option>large</option>
            <option>small</option>
        </select>
        </li>

        <li>
            <div class='price'>
                $$
            </div>
        </li>

        <li>
                <input type='hidden' value='99' name='pid'> 
                <input type='submit' class='buynow' value=''>
        </li>
    </ul>
</form>

【问题讨论】:

你能发布一些你的 HTML 吗?这可能会有所帮助 是的。标记是了解 DOM 结构所必需的。由于您使用的是 next(),因此 DOM 结构对于了解它是否有效至关重要。 【参考方案1】:

替换这个:

var vid = $(this).next(".pid").val();
var formdata = $('form#addToCart'+ vid).serialize();

有了这个:

var formdata = $(this).parents('form').serialize();

经过测试并且有效。

【讨论】:

【参考方案2】:

为什么要使用 next()?

您应该尝试在上下文中搜索:

$(".pid", this) // if "this" is the current form

无论如何,我建议让每个输入都具有唯一的 id 属性。因此您不必猜测将处理哪个元素。

【讨论】:

这不起作用,因为“this”指的是刚刚使用的选择菜单。表单的名称是我要设置为变量“formdata”的名称。表单名称的 id 为“addToCart$1”,其中 $1 是一个数字,它是“pid”类的输入框的值。

以上是关于jQuery需要从表单输入框的值中设置变量的值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用javascript在文本区域中设置输入类型文本中的值? [复制]

如何在 play 2.4 中的 scala 模板中设置类型列表字段的值?

如何在输入文本中设置唯一可能的值

jquery rules 输入验证 想加入对输入框内容的合法性验证

从下拉列表中选择数据时,从 MYSQL 数据库中设置输入字段值属性

如何在 JSP 页面中设置我自己的值的字段?