javascript - 输入输入框时文本被删除

标签 javascript php html

我有一个使用 bootstrap 构建的表单,输入时它通过 ajax 提交数据,有时这有效,有时输入框只是空的,什么也没有发生。

            <form class="form-inline" onsubmit="return Track_User()">
              <div class="form-group">
                <input type="text" class="form-control input-md" placeholder="Summoner Name" id="Summoner_Name">
                <select class="form-control" id="Server_Name">
                    <option value="oce">OCE</option>
                    <option value="na">NA</option>
                    <option value="eue">EUE</option>
                    <option value="EUW">EUW</option>
                </select>
              </div> 
              <button type="submit" class="btn btn-default btn-md">Track</button>
              <div id="Helpful_Output"></div>
            </form>

Track_User函数

function Track_User(){
    // XML request for check summoner name
    Summoner_Name = document.getElementById('Summoner_Name').value;
    Server_Name = document.getElementById('Server_Name').value;

    // Retrieves data about members in the group using ajax
    var xmlhttp = new XMLHttpRequest();
    var url = "check_summoner_name.php?Summoner_Name=" + Summoner_Name + "&Server_Name=" + Server_Name;

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            Update_Helpful_Output(xmlhttp.responseText);
        }
    }

    xmlhttp.open("GET", url, true);
    xmlhttp.send();

    // Run php script to confirm a few things
    // 1. Do we already know this summoner name + server?
    // 2. If we don't know the summoner, look it up, if false, return error message that summoner name is invalid
    // 3. If summoner name is valid, check if we already know this summoner id + server_name combination
    // 4. If we don't, create a new user
    // 5. -- Finally we redirect to the graph page
}

如果需要开发页面的url:http://crew-cut.com.au/bootstrap/loltimeplayed/index.php

抱歉网址太长

最佳答案

变化:

        <form class="form-inline" onsubmit="Track_User()">
          <div class="form-group">
            <input type="text" class="form-control input-md" placeholder="Summoner Name" id="Summoner_Name">
            <select class="form-control" id="Server_Name">
                <option value="oce">OCE</option>
                <option value="na">NA</option>
                <option value="eue">EUE</option>
                <option value="EUW">EUW</option>
            </select>
          </div> 
          <button type="submit" class="btn btn-default btn-md">Track</button>
          <div id="Helpful_Output"></div>
        </form>

function Track_User(e){
    e.preventDefault();
    // XML request for check summoner name
    Summoner_Name = document.getElementById('Summoner_Name').value;
    Server_Name = document.getElementById('Server_Name').value;

    // Retrieves data about members in the group using ajax
    var xmlhttp = new XMLHttpRequest();
    var url = "check_summoner_name.php?Summoner_Name=" + Summoner_Name + "&Server_Name=" + Server_Name;

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            Update_Helpful_Output(xmlhttp.responseText);
        }
        else if (xmlhttp.readyState == 4 && xmlhttp.status == 404)
        {
             alert("Yeah I'm working, but I returned a 404.")
        }
    }

    xmlhttp.open("GET", url, true);
    xmlhttp.send();


}

document.querySelector(".form-inline").querySelector(".btn").addEventListener("click", Track_User, false);
            <form class="form-inline" >
              <div class="form-group">
                <input type="text" class="form-control input-md" placeholder="Summoner Name" id="Summoner_Name">
                <select class="form-control" id="Server_Name">
                    <option value="oce">OCE</option>
                    <option value="na">NA</option>
                    <option value="eue">EUE</option>
                    <option value="EUW">EUW</option>
                </select>
              </div> 
              <button type="submit" class="btn btn-default btn-md">Track</button>
              <div id="Helpful_Output"></div>
            </form>

这样就可以了。不再通过表单提交,而是使用跟踪按钮启动 Ajax 调用。问题在于提交表格。它只是将表单发布到任何地方,而没有调用 ajax 请求。现在它确实会触发 ajax 调用。

关于javascript - 输入输入框时文本被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131339/

相关文章:

html - 如何在 iPad 上强制精确缩放

javascript - 单击按钮打开文本区域 - Jquery

javascript - 使用 HTML 按钮调用 PHP 函数

javascript - 使用 Angular 转换 JSON 文件中的 HTML

php - fineuploader + codeigniter CSRF 保护

PHP 取消链接或自行重写自己/当前文件

php mysql WHERE子句错误

javascript - Android Emulator 浏览器是否适合并可靠地测试 HTML/Javascript 应用程序?

javascript - Dynatable.js 自定义排序

javascript:遍历对象属性