html 选择列表更改无法在谷歌浏览器上调用方法(适用于 IE)
html select list onchange failed to call method on Google Chrome (Works for IE)
我有一个select
列表,options
从数据库中填充,如下所示:
<select name="users" onchange="showUser()">
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT userName FROM user';
mysql_select_db('finance');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
$val = $row['ID'];
echo "<option value=$val>" . $row['userName'] . "</option>";
}
?>
</select>
这是非常简单的警报功能:
<script type="text/javascript">
function showUser()
{
alert("haha");
}
</script>
我确实能够从数据库中获取值,但是每当更改时,都没有警报?
编辑:
它适用于IE但不适用于谷歌浏览器?!
你应该把你的js函数放在你的选择之前:
<script>
function showUser()
{
alert("haha");
}
</script>
<select name="users" onChange="showUser();">
<option value=sdf>sdfs</option>
<option value=s1df>sdf1s</option>
</select>
http://jsfiddle.net/xd8b6/
或将函数放在文档的<head>
首先,避免使用内联JS。因此,请删除 <select>
元素中的 onchange
事件:
<select name="users">...</select>
相反,依靠使用 jQuery 提供的事件处理程序来执行此操作:
$(function() {
$("select[name='users']").change(function() {
alert("onchange() event detected");
});
});
但是,如果 <select>
元素是动态添加的,则可能需要使用 .on()
方法进行事件绑定:
$(function() {
$(document).on("change", "select[name='users']", function() {
// Rest of the code
});
});
附带说明一下,使用mysql_
函数可能不是一个好主意 - 尝试考虑迁移到mysqli_
或PDO。
http://jsfiddle.net/teddyrised/K2GMx/
试试这个
$('select').on('change', function() {
$(this).find(':selected').val();
})
相关文章:
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- javascript从子方法调用父方法
- 我应该返回一个类似console.log()的方法调用吗
- NodeJS-从同一文件中的另一个方法调用一个方法
- 使用restangular save方法调用put与post时的控件
- 从实例方法调用实例方法
- Node.js-异步方法调用问题
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 向模板实例变量传递调用方法调用的结果时出现异常
- jQuery 方法调用了两次
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- 组合 onLayout 的方法调用
- lodash/下划线 - 使用绑定与方法调用和方法保持未绑定
- 从公共方法调用模块的私有函数
- 如何对 jqGrid 的 loadComplete 和 onSelectRow 进行基因预和后方法调用
- 完全限定的 JavaScript 方法调用
- 为什么我在 Angular JS 中收到两个方法调用
- 如何在从排序方法调用参数时将其传递给回调
- 使用两种不同的方法调用方法
- 如何在 javascript 中更改方法调用的全局范围