3

长期潜伏在这里问我的第一个公开问题,因为我真的被困住了。

我在一个托管的购物车平台上工作,所以我只能在某些指定的 div 中添加代码。我有一个我在外部调用的 javascript 代码(因为内联很糟糕,除非你必须这样做,对吗?)

所以我的问题是,有一个<select>下拉列表我无法直接访问更改 HTML,而愚蠢的购物车平台没有给它一个 id,只设置了 name 属性。

我需要在单击下拉菜单<div id="result_div">时清除,所以我有:<select name="ShippingSpeedChoice">

$("[name=ShippingSpeedChoice]").change(function(e) { $("#result_div").empty(); });

它会触发一次,但仅此而已。我的问题是,如何让它每次<select name="ShippingSpeedChoice"> 点击都触发?

这是所有相关的javascript(以防它阻止#result_div在某处清除):

    $("[name=ShippingSpeedChoice]").change(function(e) {
        $("#result_div").empty();
    });

    $("#btn_calc").click(function(e) {      /// onclick on Calculate Delivery Date button

在此先感谢,任何帮助表示赞赏!

4

3 回答 3

1

如果您希望每次单击元素时都发生某些事情,请使用.click()而不是.change(). 后者仅在他们从菜单中选择与以前不同的值时才会触发。

$("[name=ShippingSpeedChoice]").click(function(e) { $("#result_div").empty(); });
于 2013-12-20T03:52:30.087 回答
1

首先,我可能会尝试将购物车选择设置为具有 ID。

$("[name=ShippingSpeedChoice]").id = 'shopping_cart_select';

然后尝试通过它的 id 将“更改”函数绑定到元素。

$('#shopping_cart_select').bind('change', function(){
//rest of code goes here
}
于 2013-12-20T04:04:03.893 回答
0

我仍然无法使用该name属性来调用该函数,因此我通过使用下拉列表找到了一种解决id方法:tdShippingSpeedChoice

    $("#DisplayShippingSpeedChoicesTD").change(function(e) {
        $("#result_div").empty();

而且现在每次都会触发。非常感谢您的所有反馈和帮助 - 我仍然希望我能弄清楚如何使用name属性而不是id,但这将是另一天的难题!

于 2014-01-03T03:58:49.847 回答