【问题标题】:jQuery.ajax does not firejQuery.ajax 不会触发
【发布时间】:2015-12-16 21:30:44
【问题描述】:

我是 jQuery 新手,请多多包涵 :-)

我想要做的是验证表单中的用户输入,对照 mysql 数据库检查输入。然后根据 T/F 设置颜色。

我已经设法在测试页面上让它工作,但在我的真实页面上它不起作用:(

这是工作代码。

<style>
body{width:50%;}
#frmCheckUsername {border-top:#F0F0F0 2px solid;background:#FAF8F8;padding:10px;}
.demoInputBox{padding:7px; border:#F0F0F0 1px solid; border-radius:4px;}
.status-available{color:#2FC332;}
.status-not-available{color:#D60202;}
</style>
<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>


$(document).ready(function(){
    $("#username").keyup(function(){
    //alert( "Handler for .keyup() called." );
    checkAvailability();
    });
});

function checkAvailability() {
    //$("#loaderIcon").show();
    jQuery.ajax({
    url: "check_av2.php",
    data:'username='+$("#username").val(),
    type: "POST",
    success:function(data){
        //alert( data );
            //if(data){$("#username").css("background-color", "yellow");}
        $("#username").css("background-color", data);
    },
    error:function (){}
    });
}
</script>


<label>Check Username:</label>
<input name="usernae" type="text" id="username" class="demoInputBox">  


----
check_av2.php

<?php
include ('inc/environment.php');
db_open();

$id = $_POST["username"];

if(!empty($id)) {
    $result = mysql_query("SELECT id FROM lakes WHERE id='".$id."'");
    $row = mysql_num_rows($result);
    db_close();
    if($row>0) {
    echo "#BAF490";

    }else{
    echo "#F22A26";
    }
}
?>

现在将其复制到现有代码时,它不会改变颜色。我不知道现在如何进行。 'div'会影响id吗? 现有代码还包括其他脚本

<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script type="text/javascript" src="./fancybox/jquery.mousewheel-3.0.4.pack.js"></script>
<script type="text/javascript" src="./fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<link rel="stylesheet" type="text/css" href="./fancybox/jquery.fancybox-1.3.4.css" media="screen" />

这些其他脚本是否包含干扰?

这里的代码不起作用。

<SCRIPT>
$(document).ready(function(){
$("#sm").keyup(function(){
  //alert( "Handler for .keyup() called." );
  checkAvailability();
});
});

function checkAvailability() {
  //$("#sm").css("background-color", "yellow");
  jQuery.ajax({
  url: "check_av2.php",
  data:'username='+$("#sm").val(),
  type: "POST",
  success:function(data){
        //alert( data );
        $("#rstm").css("background-color", "yellow");
        $("#sm").css("background-color", data);
        //$("#loaderIcon").hide();
  },
  error:function (){}
  });
}
</SCRIPT>   
<input name="sm"
type="text" class="uppercase"
id="sm" value="<?=$sm?>" size="4"
title="Eget">

现在如果我取消注释 $("#sm").css("background-color", "yellow");该框将变为黄色在框中键入,但 jquery.ajax 似乎没有触发。

不太容易解释,但我希望你能明白 :-) 而且我不能在这里发布无效页面的整个代码。 如果需要,我可以通过邮件发送代码。

已解决 我不能让这过去了。 解决方案如果更烦人。通过删除块中的代码并缩小块来找到它。

<meta http-equiv="X-UA-Compatible" content="IE=9" />

代码中存在。删除那条线就行了!! 反正坦克:-)

【问题讨论】:

  • error:function (){} - 不要这样做。现在您不知道您的请求是否失败,这可能是这里的问题。
  • 检查开发者工具,看看您是否正在发送 AJAX 请求并收到响应或错误。
  • 我不是 100% 确定如何在 ajax 上使用开发人员工具,但今天晚些时候会尝试一下

标签: javascript php jquery css ajax


【解决方案1】:

请尝试

data:{'username':$("#username").val()}

干得好:)

【讨论】:

  • 为什么 OP 应该“试试这个”? 好的答案将始终解释所做的事情以及这样做的原因,不仅适用于 OP,也适用于 SO 的未来访问者。
  • 对不起。我不懂英语,我努力学习英语
  • data:{'username':$("#username").val()} 没有帮助,同样的错误 - 什么也没发生 :(
  • 感兴趣的网站的网址吗?
【解决方案2】:

请将对象作为数据传递

jQuery.ajax({
    url: "check_av2.php",
    data:{'username':$("#username").val()},
    type: "POST",
    success:function(data){
        $("#username").css("background-color", data);
    },
    error:function (){}
    });


jQuery.ajax({
    url: "check_av2.php",
    data:{'username':$("#sm").val()},
    type: "POST",
    success:function(data){
        $("#rstm").css("background-color", "yellow");
        $("#sm").css("background-color", data);
    },
    error:function (){}
});

【讨论】:

  • 除非用户名包含特殊字符,否则它应该可以工作。
猜你喜欢
  • 2019-08-07
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2016-04-24
  • 2015-04-12
  • 2012-05-12
相关资源
最近更新 更多