拒绝输入字段中alexa等级小于x的网站

时间:2013-09-25 11:39:29

标签: 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->attributes()->TEXT:0;
web == (string)$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');
}

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测试它,当我进入浏览器http://www.testingsite.com?url=http://www.google.com时它运行时,它会返回正确的值,所以我认为我用javascript或HTML做了一些不好的事。

1 个答案:

答案 0 :(得分:3)

我会清楚说明我在评论中提到的内容。

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 console。

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');
    }
  });
}