我想从php调用jquery函数。我尝试了这种方式,但没有调用jquery函数。
jq.action.js
$(function() {
$("#reset" ).click(function(e){
e.preventDefault();
reset_fields();
});
function reset_fields(){
$(":input").prop('selectedIndex', 0);
}
function error_msg(){
alert("Error");
}
});
index . php
<script type='text/javascript' src='jquery-1.11.1.min.js'></script>
<script type='text/javascript' src='jq.action.js'></script>
<?php
if ($_POST['id'] == '1') {
echo '<script>reset_fields();</script>';
} else {
echo '<script>error_msg();</script>';
}
?>
ReferenceError: reset_fields is not defined
如何从php调用jquery中的函数?谢谢!
你的问题是JavaScript作用域:你试图调用的函数不能从任何地方访问。
$(function() {
function reset_fields(){
// this function is only accessible to things inside $(function(){...
}
}
这意味着你不能直接访问它。但是,如果您将函数放在外部,它将工作:
function reset_fields() {
// now this function is globally accessible from anywhere
}
$(function() {
// you can still call reset_fields() from here
}
Php在服务器上运行,javascript在客户端上运行,所以术语"调用javascript函数"是不正确的。
你可以用php设置一个javascript变量,然后在客户端用javascript测试这个变量。这将使您的代码更简单一些
var postId = '<?php echo $_POST["id"] ?>';
if( postId === '1'){
reset_field();
}
else {
reset_field();
}