从文本框中获取输入值

19

我正在尝试获取文本框中的文本。

我有两个输入文本框,它们不在一个表单中,我正在尝试检索value并将其存储在变量中。

这段代码在弹出的警告框中返回undefined

<script>
    var userPass = document.getElementById('pass');
    var userName = document.getElementById('fName');
    function submit(){
        alert(userPass.value);
    }
</script>
当我使用 userName.value 作为提示框函数的参数运行时,它会起作用并显示您在框中输入的任何内容。
这是HTML代码:
 <table id="login">
        <tr>
            <td><label>User Name</label></td>
        </tr>
        <tr>
            <td colspan="2"><input class="textBox" id="fName" type="text" maxlength="30"    required/></td>
        </tr>
        <tr>
            <td id="pass"><label>Password</label></td>
        <tr>
            <td colspan="2"><input class="textBox" id="pass" type="text" maxlength="30" required/></td>
        </tr>
        <tr>
            <td><input type="button" class="loginButtons" value="Login" onclick="submit();"/>&nbsp&nbsp&nbsp
            <input type="button" class="loginButtons" value="Cancel"/></td>
    </table>

<input class="textBox" id="pass" type="text" maxlength="30" required/> - Beanno1116
11
我不同意马修的观点。继续做你正在做的事情,并学习基础知识。似乎有一些jQuery用户跳过了这一步骤。当你有了扎实的基础之后,你可以选择使用其中的许多JavaScript库,也可以选择不用。 - user1106925
我发现我不小心给一个ID命名为“pass”。谢谢大家。 - Beanno1116
7个回答

6
你会注意到在标签中没有"value"属性。
同时,尽管没有显示出来,确保Javascript在html就位之后运行。

我的输入元素是否应该有默认值? - Beanno1116
尝试一下,我会假设每个浏览器在这方面都有所不同。 - Itay Moav -Malimovka

6

<script>
  function submit(){
      var userPass = document.getElementById('pass');
      var userName = document.getElementById('user');
      alert(user.value);
      alert(pass.value);
  }
</script>

<input type="text" id="user" />
<input type="text" id="pass" />
<button onclick="submit();" href="javascript:;">Submit</button>


5

// 注意:使用"this.pass"和"this.name"会创建一个全局变量,即使它在函数内部也是如此,因此请注意您的命名约定。

function submit()
{
    var userPass = document.getElementById("pass").value;
    var userName = document.getElementById("user").value;
    this.pass = userPass;
    this.name = userName; 
    alert("whatever you want to display"); 
}

2

您有多个具有相同 ID 的元素。这是一个大忌。请确保您的输入具有唯一的 ID。

<td id="pass"><label>Password</label></td>
<tr>
   <td colspan="2"><input class="textBox" id="pass" type="text" maxlength="30" required/></td>
</tr>

注意,tdinput 都使用相同的 id 值 pass


是的,我看到了,谢谢。我甚至没有意识到我给<td>命名了。感谢您的帮助。 - Beanno1116

1

使用Javascript获取控件值:document.getElementById("<%=contrilid.ClientID%>").value; 或者使用jQuery:

$("#<%= txt_iplength.ClientID %>").val();


1

去掉id="pass"td元素上。现在 JavaScript 会获取 td 元素而不是输入框,因此值为未定义。


谢谢,就是这个问题。感谢你的帮助。 - Beanno1116

0

这是电子邮件和JavaScript的示例代码。

params = getParams();
subject = "ULM Query of: ";
subject += unescape(params["FormsEditField3"]);
content = "Email: ";
content += unescape(params["FormsMultiLine2"]);
content += "      Query:    ";
content += unescape(params["FormsMultiLine4"]);
var email = "ni@gmail.com";
document.write('<a href="mailto:'+email+'?subject='+subject+'&body='+content+'">SUBMIT QUERY</a>');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接