所以,我有一个动态生成的 SELECT,它是从 PHP-mySQL 表中填充的。我还有一个用于选择的 on change 事件,它处理用户更改页面上选定值的时间。当更改事件被触发时,我使用来自该选择选项的值填充 3 个输入框。
一切正常,除了当我使用 SELECT 进入(或刷新)页面时,SELECT 被填充,但 onChange 事件不会触发。实际上,我确信 onchange 会被触发,但这是在 SELECT 填充之前发生的,因此没有可提供的值。我能做些什么?从 php正确填充 SELECT后,如何调用更改事件?
我的 onChange 代码是:
$(document).ready(function(){
$('#myselect').change(function(){
var selected = $(this).find('option:selected');
$('#pux').val(selected.data('foo'));
}).change();
});
所以基本上,我想要一个带有 name 和 id = pux的输入来填充 select 选项的 data-foo 值。我的意思是,选择的选项结构是这样的:
<option id="1" value="whatever" data-foo="something_important">First option</option>
当然目标输入框是:
<input type="text" name="pux" id="pux" value="0" />
就像我说的:该事件在手动更改选择时效果很好,但是在页面显示(document.ready)上,pux 输入框设置为空...为空...我希望能够获得更改事件填充选择后触发。因为,在选择被填充后,选择框会自动选择第一个选项并显示它。
我尝试使用 $(document)。on("change" , function()... 在 document.ready 之外,但没有变化
我还尝试在从 php 填充 SELECT 之后立即设置输入的值,但 id 似乎不起作用。要么我把代码放在错误的地方,要么我不知道该怎么想了......
我调用 php 以填充它的代码是:
$('#myselect').toggle('fast', function(){
$(this).html(ajaxloader);
$(this).toggle('fast', function(){
$.get(loadurl, function(data){
$('#myselect').html(data);
$('#myselect').selectmenu("refresh",true);
},'html');
// and here I placed my assignment
var selx = $('#myselect').find('option:selected');
$('#pux').val(selx.data('foo'));
});
});
依然没有...
任何帮助,将不胜感激。谢谢