如何使用ajax从服务器接收返回的数据?

2024-05-04

基本上我有一个带有用户名文本框和提交按钮的表单。现在我想要的是,当用户在文本框中输入文本时,它应该获取文本框值并将用户名发送到服务器,以便服务器可以检查该用户名是否被任何其他用户占用。我可以将文本值发送到服务器,但我不知道如何接收回一些数据并将文本框边框变成红色,并在用户名被占用时弹出错误。

这是我获取文本值并将其发送到服务器的代码:

<!DOCTYPE html>

<html>
 <head>

<script src="../JquerySock.js"></script>
<meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1">    

<script>
  $(document).ready(function() {
      $('#Registeration_Username_box').on('input', function() {
        console.log('excuted input');
        postUsernameToServer();
    });
  });
  function postUsernameToServer() {
      var formData = {
                'username': $('input[name=UserName]').val(),
              };
              // process the form
              $.ajax({
                  type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
                  url: '../postr', // the url where we want to POST
                  data: formData, // our data object
                  dataType: 'json', // what type of data do we expect back from the server
                  encode: true
                })
    }
</script>
 </head>
<body>

<div id="Registeration_Div" class="Registeration_Div">
    <div class="createnewaccount" id="createnewaccount">Create new account</div>
    <form class="Registration_Form" id="Registration_Form" action="../postr" method="POST">

        <span class="Usernameerror_spn" id="Usernameerror_spn">Username has been taken</span>
        <div id="Registeration_Username_DIV" class="Registeration_Username_DIV">
            <input type="text" id="Registeration_Username_box" class="Registeration_Username_box"
                placeholder="Username" name="UserName" maxlength="30" />
        </div>

    </form>
</div>

</body>
</html>

正如您所看到的,我的用户名文本框之前有一个范围框,默认情况下是隐藏的,但我希望如果用户已被占用,则显示它。


嗯,首先:

您要求数据类型是JSON。这意味着在服务器端(是 PHP 吗?),您必须首先将其转换为 JSON 对象。在 PHP 中这将是

$data = array("username" => "bla", "taken" => "taken");
echo json_encode($data);

对于 Java EE,你可以使用这个:(source https://stackoverflow.com/questions/6185337/how-do-i-pretty-print-existing-json-data-with-java)

int spacesToIndentEachLevel = 2;
new JSONObject(jsonString).toString(spacesToIndentEachLevel);

Using org.json.JSONObject(内置于 JavaEE 和 Android) 现在,您必须确保它仅返回所需的内容JSON没有别的,否则你会得到错误。

然后,要在 ajax 调用中获取反馈:

function postUsernameToServer() {
  var formData = {'username': $('input[name=UserName]').val()};
              // process the form
              $.ajax({
                  type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
                  url: '../postr', // the url where we want to POST
                  data: formData, // our data object
                  dataType: 'json', // what type of data do we expect back from the server
                  encode: true
                }).done(function(data){ //any name you put in as an argument here will be the json response string.
                   var username = data.username;
                   var taken = data.taken;

                   //check if username is taken
                   if(taken == "taken"){
                     //make input border red
                     $('.yourInput').css({"border-color": "red"});
                   }
                   else{
                     //make input border green
                     $('.yourInput').css({"border-color": "green"});
                   }
              }).error(function(errorData){
                //Something went wrong with the ajax call. It'll be dealt with here
              });;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用ajax从服务器接收返回的数据? 的相关文章

随机推荐

  • 我试图使这段代码递归,但由于某种原因它不起作用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我试图使这
  • 如何调用模块中子程序内部的函数?

    我有一个包含子例程的模块 该子例程又包含一个函数 我说use themodule在我的主程序中 我可以call thesubroutine 但是如何访问子例程中包含的函数呢 代码如下所示 module useful integer para
  • Jquery UI:日期选择器。如何通过 $_GET 在日期选择器中设置日期

    我找不到如何设置 GET 变量来手动设置日期选择器中的日期 http jqueryui com demos datepicker http jqueryui com demos datepicker 例子 那可能吗 Thanks 在此使用
  • 具有服务器端挂钩的托管 Git 解决方案?

    已经有一个类似的 版本控制托管解决方案 带有预提交挂钩 关于SO的问题 然而 提出这个问题的用户只需要客户端钩子 我正在寻找一个允许您配置的 Git 主机服务器端 hooks 我寻找这个的原因是为了防止开发人员能够在特定分支上 push f
  • UISlider 可捕捉到固定的步数(如 iOS 7 设置应用中的文本大小)

    我正在尝试创建一个UISlider让您可以从一组数字中进行选择 每个滑块位置应等距 并且滑块应卡入每个位置 而不是在它们之间平滑滑动 这是滑块的行为Settings gt General gt Text Size 这是在 iOS 7 中引入
  • 指针 (*argv[]) 的指针的指针算术?

    我知道foo bar 等于 foo bar 但是什么是 foo bar 等于 例如访问 argv 2 我对这一点的理解有些困惑 我认为可能是这样的 foo bar 但我不确定 如果这是一个简单的答案 我深表歉意 a b 相当于 a b 由于
  • 如何为 Blazor MapFallbackToFile() 生成正确的错误

    我有一个项目想要用作 Web API 和 Blazor wasm UI 该 API 也可以从其他项目访问 因此我希望该 API 向消费者提供有用的错误详细信息 我现在通过使用该网站来实现这两个目的MapFallbackToFile 方法 但
  • “ng build”将脚本移动到子文件夹

    ng build将文件导出到 dist 文件夹 如下所示 index html main bundle js styles bundle js 我希望脚本位于子文件夹中 index html scripts main bundle js s
  • 取消的分支与常规分支有何不同?

    特别是对于 SPARC Assembly 取消的分支与常规分支有何不同 我一直认为 当我需要填充分支指令的 nop 延迟槽时 需要取消分支指令 但是 我认为我在这一部分上是不正确的 因为您可以在不取消分支的情况下填充 nop 如果不采用分支
  • 使用Redis从有限范围内生成唯一ID

    我有一些数据库项目 除了主键之外 还需要项目所属组的唯一索引 我们来调用属性nbr 以及将项目分组在一起并定义唯一范围的属性nbr 我们会打电话group This nbr必须在 1 N 范围内 并且may从外部源导入项目时进行设置 由于所
  • SQL 错误:字符串或二进制数据将被截断

    我正在一个名为 Telligent 的社区平台上进行集成 我正在使用名为 BlogML 的第 3 方插件将博客文章从 XML 文件 BlogML 格式 导入到我的本地 Telligent 站点中 Telligent 平台在其 SDK 中附带
  • 类型错误:无法读取未定义的属性“_id”

    我在将文档保存到名为的集合的简单发布请求中收到错误 TypeError 无法读取未定义的属性 id books 我的有效负载如下所示 name practical view author DN location room 50 而我只是在做
  • iPhone 拒绝了发布请求 未说明

    iPhone 拒绝了发布请求 内部启动错误 进程启动失败 未指定 这个错误让我抓狂 我似乎无法解决它 我从发现的所有地方都做了以下操作 刷新证书 注销并进入开发者苹果帐户 下载手动证书 删除 Apple 全球证书 重新启动 Mac 和 iP
  • 使用 MVVM 绑定 Xamarin.Forms 中的属性

    我在使用 Xamarin Forms 和 MVVM 制作游戏时遇到问题 游戏中有一艘由用户控制的潜艇 并且有水雷掉落 因此用户必须避开这些水雷 这些地雷是在运行时使用 2 个计时器生成的 因此我用 XAML 中的 CollectionVie
  • 是否值得购买 Mahout in Action 以跟上 Mahout 的速度,或者还有其他更好的来源吗?

    我目前是一个非常随意的用户阿帕奇马胡特 http mahout apache org 我正在考虑购买这本书象夫在行动 http www manning com owen 不幸的是 我很难理解这本书的价值 并且认为它是一本曼宁早期访问计划 h
  • 如何在ArangoDB中设置集群和分片?

    我想在arangoDB中使用分片 我已经制作了协调器 DBServers 如文档2 8 5中所述 但仍然有人可以详细解释它 以及我如何能够在分片之后和之前检查查询的性能 可以测试您的应用程序对于本地集群 所有实例都在一台机器上运行吗 htt
  • 来自 Toplink 表达式的 SQL 查询

    我有一个 oracle toplink expressions Expression 表达式对象 它是使用 oracle toplink expressions ExpressionBuilder 创建的 我想找到它的等效 SQL 查询 比
  • 智能表 - 预选特定行

    我正在使用智能表 我需要预先选择特定行 因此 在加载我的列表后 我循环进入它并设置isSelected当我到达我想要选择的项目时属性 Preselect a row for var i 0 len scope displayCollecti
  • 多线程文件写入

    我正在尝试使用多个线程写入大文件的不同部分 就像分段文件下载器所做的那样 我的问题是 执行此操作的安全方法是什么 我是否打开文件进行写入 创建线程 将 Stream 对象传递给每个线程 我不希望发生错误 因为多个线程可能同时访问同一个对象
  • 如何使用ajax从服务器接收返回的数据?

    基本上我有一个带有用户名文本框和提交按钮的表单 现在我想要的是 当用户在文本框中输入文本时 它应该获取文本框值并将用户名发送到服务器 以便服务器可以检查该用户名是否被任何其他用户占用 我可以将文本值发送到服务器 但我不知道如何接收回一些数据