【问题标题】:PHP Ajax disable / enable submit buttonPHP Ajax 禁用/启用提交按钮
【发布时间】:2012-10-03 20:20:01
【问题描述】:

我正在使用这个示例代码: http://www.w3schools.com/php/php_ajax_php.asp 进行实时名称搜索并显示它是否可用。

如果名称正在使用,如何禁用表单提交按钮,但如果名称可用则启用它?

非常感谢:)

感谢您的建议。我已将它添加到函数中,现在当我输入任何内容时按钮会禁用..

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    $('#submit').attr('disabled', 'disabled');
    }
  }

我该如何为比赛做这件事? 谢谢

【问题讨论】:

  • 问题是我不知道该尝试什么。我正计划在检查页面中添加一个 if else,所以如果有匹配项,请禁用该按钮。
  • 您已经使用 jQuery 禁用按钮,但不是用于 Ajax,我说得对吗?使用 jQuery 比手动操作要容易得多。
  • 该按钮通常处于活动状态,但我确实为其他功能加载了 jquery。使用@Zulakis 发布的代码,我确实将其禁用/启用。只需要获取 responsetext 是否包含不等于工作:)

标签: php javascript ajax forms submit


【解决方案1】:

您必须检查名称是否匹配,然后像这样禁用或启用:

  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        if (xmlhttp.responseText == "available") {
            document.getElementById("submit-button").disabled = false;
        } else {
            document.getElementById("submit-button").disabled = true;
        }
    }

【讨论】:

  • 谢谢。这行得通.. 但是如果 responsetext 包含 not equals 我们可以吗?
  • 当然。 if (xmlhttp.responseText.indexOf("available") != -1) { ... }
  • 我改成这个了,但是现在不行了! if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; if (xmlhttp.responseText.indexOf("available") != -1) { document.getElementById("submit-button").disabled = false; } else { document.getElementById("submit-button").disabled = true; } }
  • 如果页面返回包含“available”的字符串,则启用该按钮,否则禁用该按钮。根据您的需要更改“可用”。
  • 实际返回的是一个包含名称和格式的字符串。这确实包含可用的,但似乎确实喜欢它。我已将单词更改为正在使用的颜色代码,现在它似乎可以正常工作了!
【解决方案2】:

在回调中返回名称时将 disabled="disabled" 添加到提交按钮。

$('#submit-button').attr('disabled', 'disabled');

【讨论】:

  • 你应该提到使用 jQuery 或原型,或任何其他使用 fizzle 的 javascript 库;)
【解决方案3】:
<input id="id_name"type="text" name="name" onKeyup="testName();"/>
<script>
function testName() {
 $.ajax({
  var data = $('#id_name').val();
  url:'test.php',
  success: function(data){
   if(/*name in use*/) {$('#submit-button').attr('disabled', 'disabled');}
   else {$('#submit-button').removeAttr("disabled");}
  }
  });
}
</script>

【讨论】:

  • 你也可以使用 testName() onfocus 事件
猜你喜欢
  • 1970-01-01
  • 2010-12-08
  • 2019-03-19
  • 2016-07-28
  • 2014-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多