首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用jquery单击事件触发AJAX

用jquery单击事件触发AJAX
EN

Stack Overflow用户
提问于 2010-10-21 02:43:07
回答 1查看 2.3K关注 0票数 0

我有两个下拉菜单,其中一个正在尝试使用jquery替换为单选按钮。第二个框是通过AJAX更新的,每次用户在第一个下拉列表中进行选择时都会使用新的选项。我已经成功地生成了单选按钮来更改第一个下拉菜单的值,但是当用户使用单选按钮更新第一个下拉菜单时,它将不再影响第二个下拉框中的值。我不太擅长AJAX或JS,我也不知道当用户选择一个单选按钮时如何触发AJAX负载。

我事先为代码墙道歉,我不知道什么是重要的,所以我包括了所有似乎相关的内容。如果您想查看所讨论的页面,您可以看到它这里。

我用来生成单选按钮的代码如下所示:

代码语言:javascript
复制
 $(function(){
    $("#options-1 option").each(function(i, e) {
        $("<input type='radio' name='r' />")
        .attr("value", $(this).val())
        .attr("checked", i == 0)
        .click(function () {
            $("#options-1").val($(this).val());
        })
        .appendTo("#r");
       $("#options-1").change(function(){
       $("input[name='r'][value='"+this.value+"']").attr("checked","checked");
});
});
});

$("#options-1").change(function(){
    $("input[name='r'][value='"+this.value+"']").attr("checked","checked");
});

下拉列表的HTML如下所示:

代码语言:javascript
复制
<form action="http://example.com/dev3/?page_id=5" method="post" class="shopp product validate">
<div id="r"></div>

<ul class="variations">
<li> 
<label for="options-1">Framing</label> 
<select name="products[1][options][]" class="category-catalog product1 options" id="options-1"><option value="1">Print Only (Unframed)</option> 
<option value="2">Professionally Framed</option> 
</select><li> 
<label for="options-2">Size</label> 
<select name="products[1][options][]" class="category-catalog product1 options" id="options-2"><option value="3">12 x 8</option> 
<option value="4">24 x 36</option> 
</select></li> 

</ul>

<p><input type="hidden" name="products[1][product]" value="1" /><input type="hidden" name="products[1][category]" value="catalog" /><input type="hidden" name="cart" value="add" /><input type="submit" name="addtocart"  value="Add to Cart" class="addtocart" /></p>

</form>

AJAX看起来如下:

代码语言:javascript
复制
<script type='text/javascript' src='http://example.com/dev3?sjsl=colorbox,shopp,catalog,cart&amp;c=1&amp;ver=98239bb061a58639408323699680ad0e'></script> 
<script type='text/javascript'> 
/* <![CDATA[ */
var ShoppSettings = {
    ajaxurl: "http://example.com/dev3/wp-admin/admin-ajax.php",
    cp: "1",
    c: "$",
    p: "2",
    t: " ",
    d: ".",
    g: "3",
    nocache: "",
    opdef: ""
};
    var pricetags = {};
jQuery(window).ready(function(){ var $ = jqnc(); 
        pricetags[1] = {};
    pricetags[1]['pricing'] = {"18770":{"p":10,"i":false,"s":false,"t":"Shipped"},"25785":{"p":21,"i":true,"s":"1","t":"Shipped"},"23510":{"p":20,"i":false,"s":false,"t":"Shipped"}};
    pricetags[1]['menu'] = new ProductOptionsMenus('select.category-catalog.product1.options',true,pricetags[1]['pricing'],0);

});
/* ]]> */
</script> 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-21 03:00:53

当您通过js更改组合框的值时,它不会触发onChange函数或onClick等。

您必须使用与Combo 1更新Combo 2相同的代码,其中使用收音机更新Combo 1。

我建议将代码放在另一个函数中,并从两个地方调用该函数。

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3983914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档