禁用基于Ajax响应的提交按钮

时间:2012-02-25 16:04:32

标签: ajax button submit

总之,我要做的是禁用基于ajax调用的提交按钮,该调用正在检查我的数据库以查看某个日期是否存在数据。

目前我已经掌握了上述所有工作但是我在实际上禁用提交按钮的最后障碍。在presnt我有我的ajax调用的响应在我的页面上的div中显示为文本,我可以通过更改下面的代码,如果响应与我的代码检查的响应不匹配但是无法使其正常工作,则禁用该按钮匹配(或不响应)。我想我的问题是我正在检查的内容以及来自ajax调用的实际响应是不同的。任何帮助将不胜感激。

进行ajax调用的我的页面

<script type="text/javascript">
function showHint(str)
{
if (str.length==0)
  { 
  document.getElementById("txtHint").innerHTML="";
  document.getElementById("txtHint").style.border="0px";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    document.getElementById("txtHint").style.border="1px solid #A5ACB2";
    if (xmlhttp.responseText == 'WARNING!! - PREVIOUS RECORDS FOUND') document.getElementById('FRINSUB').disabled = true;
    else
    document.getElementById('FRINSUB').disabled = false;
}
 }
xmlhttp.open("GET","checkdate.php?q="+str,true);
xmlhttp.send();
}
</script>

我非常基本的ajax代码

<?php

$cdrf=trim($_GET["q"]);
list($d, $m, $y) = explode('/', $cdrf);
$mk=mktime(0, 0, 0, $m, $d, $y);
$cdrfq=strftime('%Y-%m-%d',$mk);

$q=mysql_real_escape_string($cdrfq);
$isdate = false;

$con = mysql_connect("server","username","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("jbsrint", $con);
$query = "SELECT * FROM fuelrecords WHERE FR_WE='$q'";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0){
$response = "WARNING!! - PREVIOUS RECORDS FOUND";
}else{
$response = "NO RECORD FOUND";
}
echo $response;
?>

2 个答案:

答案 0 :(得分:1)

好的我明白了。它出于任何原因(仍然无法找到从哪里发现)我在返回的ajax代码上获得了换行符,所以尽管它只是空格,if语句与我要求它检查的短语不匹配。

通过使用$ .trim(在jQuery 'If' statement string comparison not working中找到),我删除了空白区域并将其全部解雇了。

新代码现在看起来像这样。

if ($.trim(xmlhttp.responseText) == "WARNING!! - PREVIOUS RECORDS FOUND") document.getElementById('FRINSUB').disabled = true;

答案 1 :(得分:-1)

document.getElementById('FRINSUB').disabled = 'disabled';