我在索引页面上有一个地图。我想单击地图并将标记放在位置。点击事件具有一个函数,我想打开模式(jQuery对话框),并从另一个孩子的HTML页面加载表单,而该位置现在填写在正确的form-field中。
我的问题是将值(标记位置)传递到表单中的输入字段。如果我将输入字段放在索引页面上的某个位置,而在对话框中的子模板中不在。
我正在尝试使用此 $('#test_input')。val(lng ',' lat); ,但它仅显示毫秒的值然后消失。您有什么想法为什么不起作用?还是如何重建这个?谢谢!
function onMapClick(e) {
var lat = e.latlng.lat;
var lng = e.latlng.lng;
if (typeof marker != 'undefined') {
map.removeLayer(marker);
marker = L.marker([lat, lng], {icon: redMarker}).addTo(map);
}
else {
marker = L.marker([lat, lng], {icon: redMarker}).addTo(map);
}
$('#upload-modal').load('upload/ #myform');
$('#test_input').val(lng + ',' + lat); //This is what I'm trying<----------
$('#upload-modal').dialog({
height: 550,
width: 500,
modal: false,
buttons: {
Upload: function() {
var dialog = $(this),
form = $('#myform'),
data = form.serialize();
$('.off').remove();
$.ajax({
url: 'upload/',
data: data,
type: 'post',
success: function(response) {
res = $.parseJSON(response);
if (res['status'] == 'OK') {
alert('Thank you! Form has been submitted');
dialog.dialog('close');
}
else if (res['status'] == 'bad') {
delete res['status']
var errors = res;
$.each(errors, function(key, value) {
var err = $('<span></span>', {
'class': 'off',
'text': value
}),
br = $('<br></br>', {
'class': 'off',
}),
input = $('#id_'+key).parent();
br.appendTo(input);
err.appendTo(input);
err.css('color', 'red').css('font-size', '10px');
});
}
}
});
}
}
});
}
看来#test_input
在您的表格中,因此您必须等到另一个表单完全加载,请使用这样的回调:
$('#upload-modal').load('upload/ #myform', function(){
$('#test_input').val(lng + ',' + lat);
});