我無法更改通過ajax動態加載的隱藏表單元素的值。當用戶點擊某個日期時,我想讓一些隱藏的輸入字段隨日期,月份和年份自動更新(爲簡化起見,僅在代碼中顯示日期)。更改動態加載的隱藏表單元素的值
我想主要的問題是如何選擇一個已通過ajax動態加載的元素。
簡化代碼:
的index.php
<a href="#" id="someLink">Click Me</a>
include.js
$(document).ready(function(){
$('#someLink').click(function(){
// Create modal dialog dynamically
var modal = $('<div/>').attr({
id:'new' + objectName + 'Modal',
class:'modal hide fade',
tabindex:'-1',
role:'dialog',
});
// Ajax call to load modal
$.ajax({
url: "getModal.php",
}).done(function (data) {
modal.html(data);
});
// show form
modal.modal('show');
return false;
});
// bind datepicker from jQuery UI to text input
$("body").on({
focus: function(){
$('.datepicker').datepicker({
onClose: function(dateText, inst) {
var inputName = $(this).attr("name"); //returns "startDate"
console.log($('#'+inputName+'_day')); // returns "[]"
$('#'+inputName+'_day').val(new Date(dateText).getDate());
}
});
}
},'.datepicker');
});
getModal.php
echo <?php
echo "<form name='modalForm'>";
echo "<input type='hidden' name='startDate_day' id='startDate_day'>";
echo "<input type='text' class='datepicker' name='startDate' id='startDate'>";
echo "</form>";
echo ?>
「inputName」的定義在哪裏?我只能在代碼中找到唯一的用法和定義 –
據我所知,與您的ajax加載無關,這不是重點。您只需像往常一樣選擇DOM元素並進行更改。並且'console.log('#'+ inputName +'_ day')=> []' - 這不是真的,'[]'可以通過jQuery包裝器返回,而不是通過字符串連接器 –
我添加了一行現在顯示inputName來自哪裏。 – arcdegree