簡體   English   中英

jQuery Change事件根本沒有觸發

[英]jQuery Change event not firing at all

在我的編輯視圖中,我有一個接受Date的文本框。

使用MVC,當我進入編輯視圖時,字段已填入該記錄的信息,這很好。

但是,我想在其中一個字段上設置事件監聽器,特別是接受上述日期的字段。

當我轉到頁面時,我檢查了源代碼,對於該字段,它看起來像這樣:

<div class="form-group">
    <label class="control-label col-md-2" for="DateEntered">Date Entered:</label>
    <div style="width:26.5%" class="col-md-10">
        <div id="datetimepicker" class="input-group date">
            <input class="form-control text-box single-line" id="DateEnteredPhase" name="DateEntered" type="datetime" value="09/21/2016" />
            <span class="field-validation-valid text-danger" data-valmsg-for="DateEntered" data-valmsg-replace="true"></span>
            <span class="input-group-addon">
                <span class="glyphicon glyphicon-calendar"></span>
            </span>
        </div>
    </div>
</div>

注意值是"09/21/2016" ,一開始是正確的。

這是我的jQuery:

$(document).ready(function () {
    $(function () {
        $('#DateEnteredPhase').change(function () {
            var dateString = $('#DateEnteredPhase').val();
            alert(dateString);
        });
    });
});

現在,我已將該文本框中的日期值更改為"09/22/2016" ,並且未觸發更改事件。 此外,當我更改日期檢查來源時,該值仍然顯示為"09/21/2016"而不是"09/22/2016"

當我將其插入JSFiddle時 ,更改事件正在適當地觸發。

我該如何解決?

任何幫助表示贊賞。

UPDATE

在jQuery中初始化DateTimePicker(由eonasdan)

$(function () {
    $('#datetimepicker').datetimepicker({
        format: 'MM/DD/YYYY'
    });
});

問題 :在您應用插件后,用戶必須通過UI上顯示的日歷更改日期,插件將以編程方式更改日期,這不會觸發您的更改事件

解決方案使用內置事件處理程序的插件來捕獲更改事件 ,然后執行代碼。 所以下面的代碼必須工作。 以下是插件文檔中的更改事件詳細信息

$(function () {
    $('#datetimepicker').datetimepicker({
        format: 'MM/DD/YYYY'
    });

   //add change event listner that plugin supports
   $('#datetimepicker').on('dp.change',function(e){
     alert(e.date);
   })

});

如果源是動態生成的 - 事件將不會綁定到文檔就緒的元素。 嘗試這個。

$(document).on("change", "#DateEnteredPhase", function () {
    var dateString = $('#DateEnteredPhase').val();
    alert(dateString);
});

暫無
暫無

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

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