2014-01-27 16 views
0

我對執行一些日期計算的PHP文件有一個AJAX調用。我可以確認,如果我在表單上放置一個文本字段並在輸入開始日期和結束日期後將焦點放在該字段中(即,如果我輸入1/1/2014和2014年12月31日,我會得到260如果我標籤到我的「結果」字段)。AJAX調用後端PHP文件並使結果顯示在HTML範圍內

我現在想要做的是在結束日期輸入後顯示結果。這樣,用戶不必切換到文本字段就可以看到它。這裏是我的jQuery代碼來調用該文件,並在跨顯示結果:

$(function() 
    { 
    $('#result').focusin(function(event) //'result' is the name of the span 
    { 
     var start = $('#startDate').val(); 
     var end = $('#endDate').val(); 

    $("#endDate").on('input',function() { 
    var dateRegex = /(\d{1,2}\/\d{1,2}\/\d{4})/gm; 
    if(dateRegex.test($("#endDate").val())) { //Make sure date is formatted correctly 

     $.ajax(
     { 
      type: 'POST', 
      url: 'calcdays.php', 
      data: 
      { 
       startDate: start, 
       endDate: end 
      }, 
      success: function(data) 
      {  
       $('#result').html(data); 
      } 
     }); //End ajax 
    } //End if 
    }); //End regex function 

     event.preventDefault(); 

    }); //End focusin 
}); //End function 

,這裏是形式設置:

<label for="startDate">StartDate</label> 
<input type="text" name="startDate" id="startDate" /> 
<label for="endDate">EndDate</label> 
<input type="text" name="endDate" id="endDate" /> 
Result: <span id="result"> </span> 

我不能讓我的結果出現內跨度。我錯過了什麼?

+0

你錯過了向我們展示PHP代碼。它絕對可以被打破或什麼。 –

+0

還會檢查您在頁面上只有一次'id =「result」'。這個錯誤比人們想象的要普遍得多 –

+0

你確定事件'$('#result')。focusin()'獲得了呼叫嗎?您的「calcday.php」中的 – gpopoteur

回答

1

我認爲沒有關於跨度的重點事件。我認爲你的意思是

$('input[name="endDate"]').blur(function(event) { 

但是,無處可以模糊outDate。您需要定義「輸入結束日期」是什麼意思。用戶按回車鍵?或標籤按鈕和模糊的地方?或者你可以使用KEYUP來檢查當前的結束日期

$('input[name="endDate"]').keyup(function(event) { 

的價值無論如何,你應該刪除focusein一部分,你只是綁定的東西的事件,這與結束日期輸入情況時,可以準備文件後立即將其綁定。

+0

現在像冠軍一樣工作。謝謝! – Chris