在AJAX调用中返回html表单字段
Return html form field on AJAX call
当用户输入时,我需要创建带有动态标签的动态字段,更明确地说:
我要求用户选择一个日期范围,并根据该日期范围为每个日期创建标签和输入字段
为此,我所做的是在输入表单字段的更改事件上调用AJAX
函数,并根据php
函数和echo
中的输入i过程将模板添加到页面上,并将其附加到表单上,如下面的
$('#setdates').click(function() {
startDate = document.getElementById('event-start_date').value;
endDate = document.getElementById('event-end_date').value;
$.ajax({
url: "showtimings",
type: 'POST',
data:{
'startdate': startDate,
'enddate': endDate,
},
success: function(result){
$("#optionTemplate").html(result);
}});
});
下面只是我根据输入从函数返回的内容的模板。此模板乘以用户输入的时间
<div class="row">
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
<label>Date is Dynamic</label>
</div>
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-4">
<select class="form-control" id="starttime0">
<option>00:00</option>
<option>01:00</option>
<option>02:00</option>
<option>03:00</option>
<option>04:00</option>
</select>
</div>
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-4">
<select class="form-control" id="starttime0">
<option>00:00</option>
<option>01:00</option>
<option>02:00</option>
<option>03:00</option>
<option>04:00</option>
</select>
</div>
</div>
然后根据,我从php
函数中回显html
模板,并将其附加到页面上。
我想知道这是一个好的做法,还是有其他方法可以让它更有效率?
即使是现在,返回数据并将其附加到表单也需要很长时间,所以我认为这是因为对函数的调用。有没有其他方法可以让它快速处理?
[edit]
这是一个版本,由自己生成(在香草JS中)一组字段。我不完全知道你的需求,所以你必须调整它才能得到你想要的
function genTemplate(startDate, endDate) {
var buffer = '';
startDate = new Date(startDate).getTime();
endDate = new Date(endDate).getTime();
day = new Date(startDate);
var timediff = endDate - startDate;
nbDay = Math.floor(timediff / (1000*60*60*24));
var i;
for(i = 0; i < nbDay; i++) {
day.setDate(day.getDate() + 1);
buffer = buffer +
'<div class="row">'+
'<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">'+
'<label>'+day.toDateString()+'</label>'+
'</div>'+
'<div class="col-lg-2 col-md-2 col-sm-2 col-xs-4">'+
'<select class="form-control" id="starttime0">'+
'<option>00:00</option>'+
'<option>01:00</option>'+
'<option>02:00</option>'+
'<option>03:00</option>'+
'<option>04:00</option>'+
'</select>'+
'</div>'+
'<div class="col-lg-2 col-md-2 col-sm-2 col-xs-4">'+
'<select class="form-control" id="starttime0">'+
'<option>00:00</option>'+
'<option>01:00</option>'+
'<option>02:00</option>'+
'<option>03:00</option>'+
'<option>04:00</option>'+
'</select>'+
'</div>'+
'</div>';
}
return buffer;
}
function f() {
startDate = document.getElementById('event-start_date').value;
endDate = document.getElementById('event-end_date').value;
optionTemplate = document.getElementById("optionTemplate");
optionTemplate.innerHTML = genTemplate(startDate, endDate);
}
start <input id="event-start_date" value="2015-11-10"><br>
end <input id="event-end_date" value="2015-11-15"><br>
<button onclick="f()">Run</button><br>
<hr>
<div id="optionTemplate">
</div>
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 多级HTML表单
- 使用html表单中的参数调用JavaScript函数
- javascript弹出窗口没有正确加载html表单
- Javascript/RegEx未验证HTML表单
- JavaScript”;复制“;HTML表单
- 使用Web Html表单创建Javascript数组
- 用PHP发送html表单和文件附件
- 单击鼠标,用MySQL数据填充html表单输入字段
- 从HTML表单发布blob的表单输入类型是什么
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- JavaScript-HTML表单到JSON(空值)和格式
- HTML表单将数据POST到MySQL
- 获取html表单信息并使用ajax将其推送到PHP
- 使用PHP通过HTML表单选项选择器过滤MYSQL结果
- javascript,HTML表单:单击按钮插入NULL
- 如何在HTML表单中提交我的下拉选择
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题