该值不保留,选择后将保持返回到第一个值。

这是我的jQuery

<script>
    if($("#ddlGender").val("Female")) {
        $('select[name^="ddlGender"] option[value="Female"]').attr("selected","selected");
    } else if($("#ddlGender").val("Male")) {
        $('select[name^="ddlGender"] option[value="Male"]').attr("selected","selected");
    } else {
        $('select[name^="ddlGender"] option[value=""]').attr("selected","selected");
    }
</script>

这是我的下拉列表
<select name="ddlGender" id="ddlGender" onchange="${remoteFunction(action: 'index', controller: 'Main', params:'\'id=\' + escape(this.value)', update: [success: 'd1', failure: 'ohno'], options: '[asynchronous: false]')}">
  <option value="">--Select--</option>
  <option value="Female">Female</option>
  <option value="Male">Male</option>
</select>

最佳答案

我不太了解您为什么要执行select[name^="ddlGender"],因为简单的#ddlGender可以为您带来相同的结果。
不过,据我了解,您在这里编码解决方案:

<select name="ddlGender" id="ddlGender">
    <option value="">--Select--</option>
    <option value="Female">Female</option>
    <option value="Male">Male</option>
</select>

$('#ddlGender').on('change', function () {
    if ($("#ddlGender option:selected").val()==='Female') {
        $('#ddlGender option[value="Female"]').attr("selected", "selected");
    } else if ($("#ddlGender option:selected").val()==='Male') {
        $('#ddlGender option[value="Male"]').attr("selected", "selected");
    } else {
        $('#ddlGender option[value=""]').attr("selected", "selected");
    }
});

JSFIDDLER

希望这可以帮助。

07-26 09:30