我有下拉列表,当我选择选项时,它将从数据库中检索值并显示在文本字段上。所以我做了Click功能。它在 Firefox 中工作但在谷歌浏览器中无效。
HTML:
<select id="classi" name="classi">
<option value="1" onclick="chagePack('<?php echo sha1('month11')?>',1,10);">1 months</option>
<option value="2" onclick="chagePack('<?php echo sha1('month23')?>',3,20);">3 months</option>
<option value="3" onclick="chagePack('<?php echo sha1('month36')?>',6,30);">6 months</option>
</select>
使用Javascript:
function chagePack(pack,month,type)
{
alert("test");
$.post("change_membership_page",
{
pack: pack, month: month, type:type
},
function(data, status){
$("[id='replace-month-pack']").html(data);
//alert("Data: " + data + "\nStatus: " + status);
});
}
答案 0 :(得分:1)
您错过了一个引号'
标记。
而不是这个
<option value="1" onclick="chagePack('1,1,10);">1 months</option>
使用此
<option value="1" onclick="chagePack('1,1,10');">1 months</option>
您的整体代码应如下所示
function chagePack(pack,month,type)
{
alert("test");
$.post("change_membership_page",
{
pack: pack, month: month, type:type
},
function(data, status){
$("[id='replace-month-pack']").html(data);
//alert("Data: " + data + "\nStatus: " + status);
});
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="classi" name="classi">
<option value="1" onclick="chagePack('1,1,10');">1 months</option>
<option value="2" onclick="chagePack('2,3,20');">1 months</option>
<option value="3" onclick="chagePack('3,6,30');">1 months</option>
</select>
&#13;
答案 1 :(得分:1)
在select
元素上侦听点击事件被认为是一种不好的做法。你无法使用键盘。
而是使用适用于所有地方的change
事件。您可以稍微更改一下您的功能,但仍然可以访问option
所拥有的数据。
HTML:
<select id="classi" name="classi">
<option value="1" data-params="1,1,10">1 months</option>
<option value="2" data-params="2,3,20">1 months</option>
<option value="3" data-params="3,6,30">1 months</option>
</select>
JS:
$("#classi").on('change', function(){
var params = $(this).children(':selected').data('params');
alert(params);
});
答案 2 :(得分:1)
您应该使用onChange
事件代替onClick
。
OnClick
不是SELECT
代码的标准事件。
答案 3 :(得分:1)
Worked
<select id="classical" name="classical" >
<option value="1" data-params="<?php echo sha1('month11')?>,1,1">1 months</option>
<option value="2" data-params="<?php echo sha1('month31')?>,3,2">3 months</option>
<option value="3" data-params="<?php echo sha1('month61')?>,6,3">6 months</option>
</select>
$("#classical").on('change', function(){
var params = $(this).children(':selected').data('params');
var val = params.split(',');
chagePack(val[0],val[1],val[2]);
});
function chagePack(pack,month,type)
{
$.post("change_membership_page",
{
pack: pack, month: month, type:type
},
function(data, status){
$("[id='replace-month-pack']").html(data);
});
}