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+"&num=1&t=m&z=14&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禁用的控件不成功。看看说明书。