当再次选择相同的条目时,在HTML <select>框中触发事件</select>

时间:2013-12-06 12:01:47

标签: javascript jquery html onchange

在HTML表单中,我使用如下的下拉列表:

<select onchange="send()">
  <option value="a">Option A</option>
  <option value="b">Option B</option>
  <option value="c">Option C</option>
</select>

当用户更改所选条目时,将调用send(),它基本上使用jQuery.ajax(...)将新值发送到服务器。这很好。

当传输因某种原因失败时,将通知用户该错误。然后,大多数用户将再次选择相同的条目进行重试。现在的问题是,这不会再次触发onchange事件,因为值没有改变。处理这个问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:4)

试试这个 HTML

<select id="chg">
    <option>a</option>
    <option selected>b</option>
    <option>c</option>
</select>

脚本

$("select#chg").mouseup(function() {
    var open = $(this).data("isopen");

    if(open) {
        alert($(this).val());
    }

    $(this).data("isopen", !open);
});

DEMO

答案 1 :(得分:1)

您可以创建空值选项

<option value=''></option>

默认选择哪个作为首次加载,当任何选择发生错误时,您可以从选择框中选择“清空”选项。因此,下次用户需要选择选项,并且'send()'函数将调用。

// Selection empty option by code
$('#selectBoxId').val('');

答案 2 :(得分:0)

也许你可以使用onclick事件