下拉列表更改事件不适用于下拉列表

时间:2017-06-16 13:18:42

标签: javascript jquery html select drop-down-menu

我正在动态添加一个select标签,并附加来自服务器的数据中的选项以及更改下拉列表时我必须将所选数据放入文本框中,

但如果只有一个选项onchange事件将无法正常工作,请帮助

以下示例

将更清楚我的问题
var dynamicHtmlDisplay = "<input type=\"button\" Value=\"" + strAf_Manual + "\" class=\"btnAddManual\" /> </br>"

    dynamicHtmlDisplay += "<select class=\"Test form-control\"><option>--</option></select>"

在服务器调用后,我填写了下拉列表

 $('.Test').empty();
    $.each(Result, function (i, p) {
        $('.Test').append($('<option></option>').val(JSON.stringify(p)).html(p.Text));
    });

在更改事件中,我在文本框中输入所选文本

 $(".Test").change(function () {
        var selectedObject = JSON.parse($('option:selected', this).val())
});

但是,如果dropdown中只有一个值,那么我的更改无效,那么还有其他任何内容,而不是onchange事件,例如onselect事件。

3 个答案:

答案 0 :(得分:0)

正如您可以阅读https://api.jquery.com/change/

的文档

它仅在您更改下拉列表的值时才有效,是否只有一个值您没有&#34;#34;更改&#34;它

解决方案是添加一个空白值,在第一次更改电话后删除该空白值

<option value="0"></option> <option value="1">First option</option>

$("#select1").change(function(){ // You delete the blank value for the first call $("#select1 option[value=0]").remove(); ...

答案 1 :(得分:0)

Parshuram, 我假设您将使用后面的代码加载选择控件,如果您维护类和函数,下面的代码仍然可以工作。

我希望这会对你有所帮助。所有你需要的是功能。享受!

&#13;
&#13;
firebaseAuth.signOut();
Auth.GoogleSignInApi.signOut(apiClient);
&#13;
$(function(){
var Result = [{id:'1', value:'One'},{id:'2',value:'Two'}];
$('.Test').empty();
    $.each(Result, function (i, p) {
        $('.Test').append($('<option></option>').val(p.id).html(p.value));
    });
    
    $('.form-wrapper').on('change','.Test',function(){
      console.log('You have selected: ' + $(this).val());
    });
});
&#13;
&#13;
&#13;

答案 2 :(得分:0)

如果选择相同的下拉选项,通常下拉更改事件将不会触发。因此,它不适用于单个值。