簡體   English   中英

僅在禁用時選擇元素返回值

[英]Select element returning value only when disabled

我有一個選擇框,如下所示:

<select id="selectbox" class='info-entry-select' name="country"> 
    <option value="1" selected="selected">One</option> 
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

該選擇框位於一個隱藏的div中,當顯示時,它會使用ajax和單獨的php文件刷新選擇框選項。 這是更新選擇框的javascript:

$("#changeselectoptions").on('click', function() {
    $.ajax({
        type: "GET",
        url: "includes/selectoptions.php",
        dataType: 'json',
        success: function(result){
            // Replace options of select box
            var $el = $("#selectbox");
            var newOptions = result['catsOrderList'];
            // newOptions correctly returns an array in the form of {1: "One", 2: "Two", 3: "Three", 4: "Four"}
            $el.empty(); // remove existing options
            $.each(newOptions, function(key,value) {
                $el.append($("<option></option>").attr("value", key).text(value));
            });
        }
    });
    return false;
});

如果我現在打電話: $('#selectbox').val(); 我不確定,我不確定為什么嗎? 為了使問題更混亂,如果我禁用#selectbox(使用一個切換開關,增加了.attr('disabled', 'disabled');#selectbox,然后嘗試$('#selectbox').val();我得到1、2、3等的預期值

如何在不禁用此框的情況下獲得此值,或者我忽略了什么?


編輯:

我被問到我的$('#selectbox').val();在哪里$('#selectbox').val(); 打電話是。 它的參與程度沒有我上面提到的那么大,但是要更加徹底,它是通過與select元素位於同一div中的Submit按鈕進行調用的,如下所示:

$("#submitbutton").on('click', function() {
    var selectBoxVal = $('#selectbox').val();
    console.log('value is: ' + selectBoxVal);
    return false;
});

到目前為止,我唯一的想法是可能是dom問題? 我這么說是無知的,因為我的知識並不了解全部內容,但是我已經看到了一些問題,其中元素是通過javascript實時更改的,而在以后的javascript調用中無法正確檢索-而如果要檢索的元素存在時它們會很好地工作頁面已加載。

我沒有將選定的屬性分配給任何選項,但是我不認為這會導致返回undefined 例如,如果我禁用選擇框,則從同一查詢中正確返回值(如上所述),但仍然沒有手動添加選定屬性。 我離題了,但是在javascript中創建一系列選項時是否需要添加選定的屬性? 從使用的角度來看,最初顯示為選擇的選項與我無關,但我很樂意遵循最佳程序。 我假設瀏覽器將顯示的選項解釋為已選中(如果沒有標記)。

我相信選擇的“值”將是在該選擇框中具有屬性“已選擇”的<option> 否則,該輸入沒有指示值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM