【问题标题】:serialize form selected selectbox option on multiple selectboxes在多个选择框上序列化表单选择的选择框选项
【发布时间】:2010-10-28 13:26:54
【问题描述】:

我在页面上有多个选择框,所有这些选择框都共享名称属性的相同开头部分。我需要做的是使用此起始名称SELECT___ 浏览页面上的每个选择框,并获取该选择框的名称以及选择的选项值是什么,并将其格式化为这样,以便我可以将其插入如下所示的 Ajax 发布调用。

注意:产品代码取自以下变量

var global_Current_ProductCode = '100E';

这是 Ajax 调用。请注意,我对数据字段进行了硬编码,它可以工作,但我需要获取实际选择的选项值及其对应的选择名称。

$.ajax({
url: $("form[name='MainForm']").attr('action'),
data: "SELECT___100E___7=25&SELECT___100E___9=42&btnupdateprice.x=0&btnupdateprice.y=0&ProductCode=100E",
type: 'POST', 
cache: false,
success: function(response) {
result2= $(response).find(".pricecolor .price");
alert(result2.text());
}
});

这里是选择框。请注意,页面上可能有一个、两个或多个选择框。谢谢你的帮助。希望我说得通。

<select onChange="change__option(this.name,this.options[this.selectedIndex].value,this.options[this.selectedIndex].text)" name="SELECT___100E___7">
<option value="0">Select Cart Color</option>
<option value="21">Chrome</option>
<option value="25">Beige/Almond [Add $1.00]</option>
</select>

<select onChange="change__option(this.name,this.options[this.selectedIndex].value,this.options[this.selectedIndex].text)" name="SELECT___100E___9">
<option value="0">Select Cart Color</option>
<option value="27">Red</option>
<option value="42">Beige/Almond [Add $2.00]</option>
</select>

所以总结起来,我需要像SELECT___100E___7=25&amp;SELECT___100E___9=42&amp;btnupdateprice.x=0&amp;btnupdateprice.y=0&amp;ProductCode=100E 这样的格式,这样我就可以把它放在Ajax 调用的数据字段中。这是假设第一个选择框选择了米色/杏仁选项(25),第二个选择框也选择了米色/杏仁选项(42)

【问题讨论】:

    标签: jquery


    【解决方案1】:

    您可以使用jQuery serialize。它只需要在周围的&lt;form&gt; 上有一个id 属性。要在请求中包含其他信息,例如产品 ID 或价格,请创建相应的 hidden 字段并调用

    $.ajax({ 
    
    //..
    
    data: $("#form-id").serialize(), 
    
    //..
    
    });
    

    【讨论】:

    • 这有点用,但不包括 &btnupdateprice.x=0&btnupdateprice.y=0 所以我把它加进去了,效果很好。数据:$("#form-id").serialize()+'&btnupdateprice.x=0&btnupdateprice.y=0',
    • 实际使用的选择器是 $("form[name='MainForm']").serialize()+'&btnupdateprice.x=0&btnupdateprice.y=0',
    • @user357034:serialize() 函数仅从输入元素中获取值。要包含其他信息,您要么需要添加几个隐藏字段,要么像您所做的那样简单地连接其他数据。
    猜你喜欢
    • 2012-01-11
    • 2018-04-01
    • 2017-01-04
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多