Javascript-can';无法获取文本字段的值

Javascript-can';无法获取文本字段的值,javascript,html,json,Javascript,Html,Json,我正在尝试制作一个应用程序,根据表单中给出的电子邮件搜索json占位符用户列表,出于测试目的,我正在将搜索结果打印到控制台 下面是我正在使用的javascript: <script type="text/javascript"> var mail = document.getElementById("mail").value; var root = 'http://jsonplaceholder.typicode.com/users?email='; $.ajax({ url

我正在尝试制作一个应用程序,根据表单中给出的电子邮件搜索json占位符用户列表,出于测试目的,我正在将搜索结果打印到控制台

下面是我正在使用的javascript:

<script type="text/javascript">
var mail = document.getElementById("mail").value;
var root = 'http://jsonplaceholder.typicode.com/users?email=';
$.ajax({
    url : root + mail,
    method : 'GET'
}).then(function(data) {
    document.getElementById("ime").value = data[0].name;
});
</script>
但当我使用getElementById时,它会将空行打印到控制台。不是空的,空的,只是为了澄清

我尝试了另一种获取邮件的方式:

var mail = "<c:out value="${param.email}" />";
var-mail=”“;
现在,这里发生的是打印出我想要的东西。如果我连续两次提交同一封邮件。我不明白为什么会这样

我还将添加我的表格,可能错误在于:

<form
            action="<%=response.encodeURL(request.getContextPath()
                + "/upisKorisnika.html")%>"
            method="POST">
            <table id='userInput' class="display" border="0"
                style="font-family: Arial; font-size: 18px;">
                <tr>
                    <td><c:out value="Ime: " /></td>
                    <td><input type="text" name="ime"></td>
                </tr>
                <tr>
                    <td><c:out value="Prezime: " /></td>
                    <td><input type="text" name="prezime"></td>
                </tr>
                <tr>
                    <td><c:out value="E-mail: " /></td>
                    <td><input type="text" id="mail" name="email"></td>
                </tr>

                <tr>
                    <td colspan="2" style="text-align: center"><input
                        type="submit" name="unesiButton" value="Unesi"></td>
                </tr>
            </table>
            <input type="hidden" id="ime" name="imePretraga" />
        </form>

如果能得到任何帮助,我将不胜感激,我已经在这件事上纠缠了好几个小时了

根据评论,我尝试在提交按钮上运行脚本:

<script type="text/javascript">
function submitform(){
var mail = document.getElementById("mail").value;

var root = 'http://jsonplaceholder.typicode.com/users?email=';
$.ajax({
    url : root+mail,
    method : 'GET'
}).then(function(data) {
    document.getElementById("ime").value = data[0].name;
});
document.getElementById("myForm").submit();
}
</script>

函数submitform(){
var mail=document.getElementById(“邮件”).value;
变量根http://jsonplaceholder.typicode.com/users?email=';
$.ajax({
url:root+mail,
方法:“获取”
}).then(功能(数据){
document.getElementById(“ime”).value=数据[0]。名称;
});
document.getElementById(“myForm”).submit();
}
这是按钮:

<button onClick="submitform()">Unesi</button>
                        </td>
Unesi

我在表单中添加了id,以便提交。它仍然不起作用。我相当肯定是这样的,因为它无法正常接收邮件。有什么可能的建议来解释为什么会这样吗?

好的。因此,我有一些个人的经验,因为我试图编写一个HTML文件,包括javascript。我有一个标签,希望用户单击我制作的按钮,它将从表单中获取值。经过数小时的研究,我发现了

document.getElementById()
这种变体是

document.getElementById().value
给定一个id为的html表单,调用我列出的第二个函数(即.value函数),该函数的id在括号中,id周围带有引号。这将从表单中获取任何文本

乙二醇


作为将来的参考,Java与JavaScription不同您的
javascript
是在页面加载时仅执行一次,还是在用户在名为
“email”的文本字段中键入内容后,在某个时候作为函数调用
?@stvcisco-很好的一点-没有提交或任何东西可以触发ajax-它只会在某个点运行,而不管“mail”输入元素中有什么。您所说的很有意义,所以我添加了一个函数来触发提交时的整个脚本,但它仍然不起作用
document.getElementById().value
<br />
<form>
Input text here
<input id="testform" type="text">
</form>
<button onClick="submitform()">Submit</button>
<script>
function submitform(){
form_data=document.getElementById("testform").value;
}
</script>
document.getElementById().value