【问题标题】:I cannot get the value of CHtml::dropDownList with Javascript我无法使用 Javascript 获取 CHtml::dropDownList 的值
【发布时间】:2021-11-14 17:07:20
【问题描述】:

我是 PHP 和 Javascript 的新手,遇到以下问题。这是我的html/php:

<div class="row" style="margin-bottom:10px;">
                <div class="col-md-12">
                  <?php echo CHtml::dropDownList('contact_list','',
                  (array)Driver::contactDropList( Driver::getUserId())
                  ,array(
                  'class'=>"contact_list chosen"
                  ))?>
                </div>
            </div>

单击“取消”按钮时,我正在尝试重置此字段。通过重置,我的意思是使用从联系人中选择的值(它是下拉列表中的第一个选项)。这是我的 Javascript 代码,它不能正常工作。它只关闭表单,但不刷新页面,下拉值就在那里,并且没有更改为默认值:

        $( document ).on( "click", ".close-modal", function() {     
            var elements = $('.contact_list');
            elements.select = 'Select from contacts';
            var id=$(this).data("id");
            $(id).modal('hide');
        });

我也尝试使用$("#frm").reset(); 方法重置整个表单,但也没有想要的结果。

现在,它显示的是用户选择的先前值。

【问题讨论】:

    标签: javascript php html forms drop-down-menu


    【解决方案1】:
    $('.contact_list option:first-child').attr("selected", "selected");
    

    试试这个

    你也可以试试下面的代码:

    $(".contact_list").prop("selectedIndex",0);
    

    注意:此选项将选择下拉菜单的第一个选项。确保将“选择您的联系人”作为第一个选项

    【讨论】:

    • 这是我的第一选择,但不幸的是,您的建议都不起作用。也许我错过了一些东西。这是我的代码: var id=$(this).data("id"); $(id).modal('隐藏'); $('.contact_list option:first-child').attr("selected", "selected"); (OR $(".contact_list").prop("selectedIndex",0);)
    • 右键单击下拉菜单,选择检查元素,然后将生成的下拉菜单及其子项的屏幕截图发送给我
    • 我在原始问题中添加了两张照片,分别是第一张和第二张
    • $('.chosen-single span').html("从联系人中选择"); $('.result-selected').removeClass("result-selected"); $('li[data-option-array-index=0]').addClass("result-selected");
    • 试试这个代码。它肯定会奏效。
    【解决方案2】:

    如果你想看到$(.contact_list)的预选值,那么首先你需要设置一个预选值的变量:

    var contactVal = $('.contact_list').find(":selected").val();
    

    现在在$(id).modal('hide'); 之后设置预选值:

    $('.contact_list option[value=contactVal]').attr('selected','selected');
    

    如果这能解决您的问题,请告诉我。

    【讨论】:

    • var contactVal = $('.contact_list').find(":selected").val(); 正在返回 undefined 并且没有解决问题。 :(
    • 这是预选表单还是在关闭模式后您只想显示 "Select from contacts" ?如果这不是预先选择的,那么var contactVal = $('.contact_list').val(); 将解决这个问题。
    • 当您第一次打开表单时,您会看到默认值是第一个(我在原始问题中上传了一张图片)。之后,您从下拉列表中选择一个选项(例如 - Alexander),然后单击取消,当您尝试再次打开表单时,Alexander 仍然在那里,而不是从联系人中选择。
    • 明白。好的,我认为在$( document ).on( "click", ".close-modal", function() { 这一行之后您应该添加$('.contact_list option:selected').attr("selected",null); 我认为这将解决问题。
    • 非常感谢您愿意和时间来帮助我,但它仍然不起作用。当我提醒这个$('.contact_list option:selected') 时,它返回未定义,如果这可以清除它的话。
    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多