У меня есть карта на моей индексной странице. Я хочу щелкнуть по карте и поместить маркер в позицию. Событие click имеет функцию, в которой я хочу открыть модальный (диалоговое окно jquery) и загрузить форму с другой дочерней html-страницы с положением, которое теперь заполнено в правильном поле формы.Передача значения в поле ввода формы внутри диалогового окна jquery?
Моя проблема заключается в передаче значения (позиции маркера) в поле ввода в форме. Моя функция работает, если я помещаю поле ввода где-то на индексной странице, но не в дочерний шаблон в диалоговом окне.
Я пытаюсь с этим $ ('# 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');
});
}
}
});
}
}
});
}
OH ДА! Работает! Большое спасибо Мехран! – user3199840