Javascript 拒绝输入字段中alexa排名小于x的站点

Javascript 拒绝输入字段中alexa排名小于x的站点,javascript,php,html,Javascript,Php,Html,PHP-alexa.PHP <? $url = filter_var($_GET['url'], FILTER_SANITIZE_URL); $xml = simplexml_load_file('http://data.alexa.com/data?cli=10&dat=snbamz&url='.$url); $rank=isset($xml->SD[1]->POPULARITY)?$xml->SD[1]->POPULARITY->attri

PHP-alexa.PHP

<?
$url = filter_var($_GET['url'], FILTER_SANITIZE_URL);
$xml = simplexml_load_file('http://data.alexa.com/data?cli=10&dat=snbamz&url='.$url);
$rank=isset($xml->SD[1]->POPULARITY)?$xml->SD[1]->POPULARITY->attributes()->TEXT:0;
web == (string)$xml->SD[0]->attributes()->HOST;
echo $rank;
?>
SD[1]->POPULARITY)?$xml->SD[1]->POPULARITY->attributes()->TEXT:0;
web==(字符串)$xml->SD[0]->attributes()->HOST;
echo$rank;
?>
Javascript-alexa.js

function alexa() {
 var $btn = $('#buttonreg');
 var $input = $('#domain');
 var url = $.trim($input.val());
 $.get('alexarank.php?url='+url, function(data){
  var alexa = parseInt(data);
  if ($.trim(data) == '' || alexa < 500000)
  {
   alert('We don't accept sites with alexa rank higher than 500.000.');
   $btn.attr('disabled', 'disabled');
  }
   else
    {
     $btn.removeAttr('disabled');
    }
  }, 'text');
}
函数alexa(){ 变量$btn=$(“#按钮REG”); var$input=$(“#域”); var url=$.trim($input.val()); $.get('alexarank.php?url='+url,函数(数据){ var-alexa=parseInt(数据); 如果($.trim(数据)=''|| alexa<500000) { 警报(‘我们不接受alexa排名高于500.000的网站’); $btn.attr('disabled','disabled'); } 其他的 { $btn.removeAttr('disabled'); } }“文本”); } HTML-page.HTML

<input id="domain" class="txt" type="text" name="domain" size="25" value="" maxlength="255" onblur="alexa()"></input>

我需要回显错误警报(“我们不接受alexa排名高于500.000的网站”);当用户在注册表上添加其网站时,如果其网站alexa排名小于500.000。我已经测试过了,但它不起作用,它什么都不起作用。
从php开始测试,当我进入浏览器时,php工作,它返回正确的值,因此我认为我对javascript或HTML做了一些不好的事情。

我将澄清我在评论中提到的内容

alert('We don't accept sites with alexa rank higher than 500.000.');
应替换为

alert("We don't accept sites with alexa rank higher than 500.000.");
第一个(代码中的)引号不匹配,显然会破坏代码的其余部分。你在“不要”中使用的一句话打破了一切

编辑:

将代码更改为此,然后重试。如果仍然无法工作,请检查js控制台

function alexa() {
 var $btn = $('#buttonreg');
 var $input = $('#domain');
 var url = $.trim($input.val());
 $.get('alexarank.php?url='+url, function(data){
  if( typeof(data) == "undefined" ) return false;
  var alexa = parseInt(data);
  if ($.trim(data) == '' || alexa < 500000)
  {
   alert('We do not accept sites with alexa rank higher than 500.000.');
   $btn.attr('disabled', 'disabled');
  }
   else
    {
     $btn.removeAttr('disabled');
    }
  });
}
函数alexa(){ 变量$btn=$(“#按钮REG”); var$input=$(“#域”); var url=$.trim($input.val()); $.get('alexarank.php?url='+url,函数(数据){ if(typeof(data)=“undefined”)返回false; var-alexa=parseInt(数据); 如果($.trim(数据)=''|| alexa<500000) { 警报(“我们不接受alexa排名高于500.000的网站”); $btn.attr('disabled','disabled'); } 其他的 { $btn.removeAttr('disabled'); } }); }
alert('我们不接受alexa排名高于500.000的网站');这似乎有不匹配的引号。您应该先尝试在其中放入一些调试行。在输出数据对象的success函数中以及在$.get()add.done()、.fail()和.always()之后,使用类似的日志规则进行控制台日志记录,以查看哪个被触发以及它们接收到什么。(请参见)@Stephan MullerDid未实现为Jquery,但在Jquery-1.10.2.js或Jquery-2.0.3.js的头加载中添加后仍未加载。我不知道如何调试,我在这里是一个noob。你那里的$.get()函数让我觉得是jQuery,如果我错了,很抱歉。无论如何,调试只是一步一步地检查代码,检查是否发生了任何事情,如果发生了,检查是否正确。在
var-alexa=parseInt(数据)行之前
添加一行
console.log(data)
,并检查您的浏览器控制台(如有必要,用谷歌搜索)是否输出与PHP发送的内容类似的内容。如果是这样,您的AJAX可以工作,您可以开始调试以下规则。如果不是,那就是AJAX失败了。试着确定问题发生的地方。我刚试过你在下面发布的链接,它对我有用@Adrian你有没有检查控制台上的javascript错误?(例如:Firefox中的Firebug)@Adrian哪个js文件有你说的?我选中了“common.js”,没有看到任何代码。2.删除get()函数末尾的“text”。还可以在get()中执行“console.log(data)”。并检查日志。我无法查看您的网站,因为它在提醒“您的国家不受支持”后转发给我