Jquery 填写<;表格>;有现存价值

Jquery 填写<;表格>;有现存价值,jquery,html,Jquery,Html,我有个小问题。我有以下表格: <form action="task.php" method="post"> ID: <input id="iddev" type="text" name="id" disabled> <br/> Latitude: <input type="text" name="lat"> <br/> Longitude: <input type="text" name="lon"> &l

我有个小问题。我有以下表格:

<form action="task.php" method="post">
   ID: <input id="iddev" type="text" name="id" disabled> <br/>
   Latitude: <input type="text" name="lat"> <br/>
   Longitude: <input type="text" name="lon"> <br/>
   <button type="submit" class="btn btn-danger">Done!</button>
</form>

ID:
纬度:
经度:
完成!
我想用已存储在下拉列表中的现有值填充禁用的“id输入”:

<?
foreach ($arajka as $a){
      echo  "<option data-id='" .$a['id'] ."' data-lat='" .$a['lat'] . "' data-lon='" .$a['lon'] . "'value=\"" .$a['id']. "\">" .$a['id']. "_" . $a['name'] . "</option>";
}
?>

我的意思是,当用户从我的下拉菜单中选择其他选项时,我希望这个输入改变。我已经在用JQuery更改一些内容:

$( document ).ready(function() { 
$('#loc').change(function(){
    var lat = $(this).find(':selected').attr('data-lat');
    var lon = $(this).find(':selected').attr('data-lon');
            var id = $(this).find(':selected').attr('data-id');
    $('#mapka').html("<iframe width=\"425\" height=\"350\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" src=\"https://maps.google.com/maps?q=loc:"+lat+","+lon+"&amp;num=1&amp;t=m&amp;z=14&amp;output=embed\"></iframe><br />");
            $('#iddev').html(id);
    });
});
$(文档).ready(函数(){
$('#loc')。更改(函数(){
var lat=$(this).find(':selected').attr('data-lat');
var lon=$(this.find(':selected').attr('data-lon');
var id=$(this.find(':selected').attr('data-id');
$('#mapka').html(“
”); $('#iddev').html(id); }); });
有没有这样做的选择?我错过了一些非常简单的东西吗?还是我必须重新加载整个表单?
亲切的问候

尝试使用
选项:已选择
而不是仅使用
:已选择

var lat = $(this).find('option:selected').attr('data-lat');
var lon = $(this).find('option:selected').attr('data-lon');
var id = $(this).find('option:selected').attr('data-id');
如果表单是通过ajax加载的,则使用以下代码:

$(document).ready(function() {
    $(document).on('change', '.quickviewLink a', function(e){

    });
});

您不能使用
.html()
更新输入字段。尝试将下拉代码中的
.html()
更改为
.val()

$('iddev').html(id)

$('iddev').val(id)

另一方面,您可以通过如下操作从所选元素获取数据,而不是三次查找所选项目并查找特定的数据属性

// get all details bound to the selected option.
var mapDetails = $(this).find(':selected').data();

// lat
mapDetails.lat;

// long
mapDetails.lon;

// id
mapDetails.id;

它适用于my,但不适用于input id=“iddev”。我不明白为什么。你不觉得你把Javascript和PHP搞混了吗?您的第二个代码块肯定是一个PHP代码段。请尝试使用jquery更新值,如果您无法更新,我们将很乐意提供帮助。谢谢您的回答。我之前发现了这一点,但我仍然很感激!:)还有一个问题。如果我的输入被禁用,我将无法在表单中使用它…它似乎没有传递数据。知道为什么吗?@user2987001禁用的控件不成功。看看说明书。