1

我有这个代码:

            <select>
                <option onChange="filterProducts(this);">Select ...</option>
                <option onChange="filterProducts(this);">Samsung</option>
                <option onChange="filterProducts(this);">LG</option>
                <option onChange="filterProducts(this);">Sony</option>
                <option onChange="filterProducts(this);">Philips</option>
            </select>

哪个应该触发一个 js 方法,但它根本不会触发:

function filterProducts(firedByControl){
   alert(fired);
}

对于这个按钮,调用相同的 js 方法,一切正常:

<button type="button" class="btn" onclick="filterProducts(this)" value="LCD">LCD</button>

你能告诉我我哪里错了吗?

4

5 回答 5

3

您需要对元素进行 onchange 调用。

 <select onChange="filterProducts(...);">
            <option>Select ...</option>
            <option>Samsung</option>
            <option>LG</option>
            <option>Sony</option>
            <option>Philips</option>
 </select>
于 2012-10-10T15:01:21.873 回答
1

将 移动onchange到如下所示的选择,

<select onchange="filterProducts">
于 2012-10-10T15:02:03.760 回答
1

我认为onchange应该是<select>元素的一个属性,而不是每个<option>.

于 2012-10-10T15:02:04.247 回答
1

改为这样做<select onchange="filterProducts(this);">

于 2012-10-10T15:02:28.003 回答
1

您需要将 onchange 属性放在 上select,而不是option.

顺便说一句,您可能应该使用 JQuery 做类似的事情:

$("select").onChange(filterProducts);
于 2012-10-10T15:02:42.857 回答