【问题标题】:Get input value javascript获取输入值 javascript
【发布时间】:2018-06-16 09:36:50
【问题描述】:

我正在尝试在 HTML 元素中编写一些输入并使用 JS 获取输入文本,然后使用 AJAX 将值发送到另一个文件,但它不起作用,结果我只得到“null”

有什么原因吗?

这是我的 HTML

<button type="button" onclick="loadDoc()">Value</button>
     <input type="number" class="test" id="test" name="test" value="" style="width:10%" >
     <div id="mostraAttuale"></div>
    </br>

这是我的 JS 函数

function loadDoc() {
    var value = document.getElementById("test");
    alert(value);
    var url = <?php echo json_encode($test); ?>;
    var email = <?php echo json_encode($mail); ?>;
    var valuereq = new XMLHttpRequest();
    valuereq.open("GET", url+'?email='+email+'&value='+value, true);
    valuereq.send();
    valuereq.status;
    valuereq.onreadystatechange = function () {
        if (valuereq.readyState == 4 && valuereq.status == 200) {
            var return_data = valuereq.responseText;
            document.getElementById("mostraAttuale").innerHTML = "ultimo valore inserito: " + return_data;
        }
        else document.getElementById("mostraAttuale").innerHTML = valuereq.status;
    }
    document.getElementById("test").value="";
}

提前谢谢你。

【问题讨论】:

    标签: javascript html ajax dom


    【解决方案1】:

    var value = document.getElementById("test"); 行没有获得值,而是“HTMLInputElement”。替换为:

     var value = document.getElementById("test").value;
    

    【讨论】:

    【解决方案2】:

    试试这个:

    function loadDoc() {
        var value = document.getElementById("test").value;
        alert(value);
        var url = "<?=json_encode($test) ?>";
        var email = "<?=json_encode($mail) ?>";
        var valuereq = new XMLHttpRequest();
        valuereq.open("GET", url+'?email='+email+'&value='+value, true);
        valuereq.send();
        valuereq.status;
        valuereq.onreadystatechange = function () {
          if (valuereq.readyState == 4 && valuereq.status == 200) {
              var return_data = valuereq.responseText;
              document.getElementById("mostraAttuale").innerHTML = "ultimo valore inserito: " + return_data;
          }
          else 
             document.getElementById("mostraAttuale").innerHTML = valuereq.status;
        }
        document.getElementById("test").value="";
    }
    

    【讨论】:

    • 我认为你应该从 urlemail 声明中删除双引号,做 var url = &lt;?=json_encode($test) ?&gt;; 或 var url = "&lt;?= $test ?&gt;"; 但在这两种情况下你都不应该混合使用 php 代码和 js 代码
    • 但是json_encode 返回字符串并且没有双引号输出将是:var url = some string without quotes...
    • 返回带双引号的字符串,试试看here
    • 但如果他对数组进行编码,则返回时不带双引号:ideone.com/7f1Ypv
    • 非常感谢您的帮助,这就是解决方案。
    猜你喜欢
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多