javascript
  • jquery
  • 2017-04-10 94 views 0 likes 
    0

    我有一個呈現的html使用jquery和我當我測試它時我試圖console.log選擇下拉列表中選定的值,但我無法得到它。你能告訴我我的代碼有什麼問題,或者爲什麼它沒有記錄選定的值?在jquery中獲取呈現的html的id

    $(document).ready(function() { 
    
         //date forms 
          $("#datetypediv").html("<select required name='date_select' class='form-control' id='date_select_off'>" 
                + "<option val='daily'>Daily</option>" + 
                "<option val='monthly'>Monthly</option>" + 
                "<option val='quarterly'>Quarterly</option>" + 
                "<option val='annually'>Annually</option>" + "</select>"); 
    
         if($('#date_select_off option:selected').val() == "daily") {//value attribute 
          console.log('daily'); 
         } 
    
    }); 
    

    整個事情是一個錯字

    <option value=""></option> 
    
    +3

    而不是val的=「日常」請寫值=「日常」(同去的其他人) – Sorikairo

    +0

    您也可以只使用' $('#date_select_off')。val()=='daily'' –

    +0

    @RohithKP是的它是 –

    回答

    1

    這是正確的HTML語法

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

    請檢查this fiddle

    如果條件變化daily變爲Daily

    代碼:

    if($('#date_select_off option:selected').val() == "Daily") {//value attribute 
        console.log('daily'); 
    } 
    

    $("#datetypediv").html("<select required name='date_select' class='form-control' id='date_select_off'>" 
     
               + "<option val='daily'>Daily</option>" + 
     
               "<option val='monthly'>Monthly</option>" + 
     
               "<option val='quarterly'>Quarterly</option>" + 
     
               "<option val='annually'>Annually</option>" + "</select>"); 
     
    
     
        if($('#date_select_off option:selected').val() == "Daily") {//value attribute 
     
         console.log('daily'); 
     
        }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <div id="datetypediv"> 
     
    
     
    </div>

    +0

    不要使用僅鏈接的答案。 – Roberrrt

    +0

    我不是隻提供鏈接。我已經工作和測試,然後提供鏈接。 – csharpbd

    +0

    它也是錯誤的,因爲val()(使用正確的html語法)將返回值'daily'而不是選項元素'Daily'內的文本 – Sorikairo

    0

    您匹配與option attribute使用與.attr('val')val()。如果你需要匹配val() .change <option value="daily"></option>

    $(document).ready(function() { 
     
    
     
         //date forms 
     
          $("#datetypediv").html("<select required name='date_select' class='form-control' id='date_select_off'>" 
     
                + "<option val='daily'>Daily</option>" + 
     
                "<option val='monthly'>Monthly</option>" + 
     
                "<option val='quarterly'>Quarterly</option>" + 
     
                "<option val='annually'>Annually</option>" + "</select>"); 
     
    
     
         if($('#date_select_off option:selected').attr('val') == "daily") {//value attribute 
     
          console.log('daily'); 
     
         } 
     
    
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <p id="datetypediv"></p>

    0

    你正在創建的DOM元素,無法直接使用的ID中獲得價值的語法。你可以這樣打電話。

    $(document).on('change','#date_select_off',function(){ 
        if($(this).val() == "daily") { 
         console.log('daily'); 
        } 
    }) 
    
    0

    您正在運行的所有文件準備函數內部的代碼,所以它會在插入之後運行值檢查,因此,如果你有選擇$('#date_select_off option:selected').val()下面的代碼,其指向任何元素的:selected ,因爲沒有任何選項具有選定的屬性。

    我想你應該有<option value="#" selected></option>才能在這個控制檯日誌得到的值

    +0

    再看一遍,如果沒有'selected'值,則':selected'選擇器將指向第一個條目。 –

    相關問題