【问题标题】:JQuery - get dropdown value from popupJQuery - 从弹出窗口中获取下拉值
【发布时间】:2016-08-24 16:16:56
【问题描述】:

我的 JQuery 已加载到我的父窗口中。

我正在从父级打开一个弹出窗口,其中包含一个表单 id='form1'

表单中有一个下拉列表id='site'。根据设置的内容,我将输入字段设置为只读或非只读。默认情况下,输入是只读的。将下拉列表更改为值不是 0 的条目会删除只读。

$('body').on('change', '#site', function(){
    if  ($(this).val() == '0') {    
        $('#siteField').prop('readonly', true);
    } else {
        $('#siteField').prop('readonly', false);
    }
});

<input type='text' id='siteField' name='siteField' value='<?php echo $site?>' readonly>

当我手动更改下拉菜单时,这工作正常,输入将是只读的或不是。

但是,当加载弹出页面时,如果下拉菜单设置为 0 以外的状态,那么我似乎无法“取消只读”该字段。

我尝试在$(document).ready(function() { 之后添加以下内容,但这没有奏效。

if  ($('#site').val() == '0') { 
    $('#siteField').prop('readonly', true);
} else {
    $('#siteField').prop('readonly', false);
}

在弹出窗口打开时控制台记录 $('#site').val() 显示 UNDEFINED,但有一个下拉设置。

我假设这是因为正在加载值并设置了字段,但我如何在弹出窗口中读取它?

有什么想法吗? 谢谢

【问题讨论】:

    标签: jquery select popup readonly


    【解决方案1】:

    确保使用 value 属性

    <option value="0a">0b</option>
    

    为了得到 0a,你使用 .val() 但是,要获得 0b,您需要使用 .text()

    也许这就是你所缺少的

    【讨论】:

    • 谢谢我正在使用val(),但它不会加载值。
    • 你能确认查看 html 呈现的代码,那里设置了值吗?
    • 是的,有一个值集。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多