使用Javascript将输入值作为变量传递

时间:2016-05-11 13:55:13

标签: javascript jquery

我正在使用JavaScript尝试将隐藏输入字段的值作为变量传递到下面的url路径中,但是当我检查代码时,我看到'undefined'我希望变量在哪里。

我真的想解决这个问题。知道为什么值是'undefined'而不是隐藏输入字段的值?

var userID = "";
userID = $('#userID').val();

document.write("<input type='hidden' id='userID'>");
document.write("<a href='http://sample/folder/" + userID + "/Documents/Forms/All.aspx'><li>test</li></a>");

3 个答案:

答案 0 :(得分:1)

您未定义,因为输入字段没有任何值。确保为字段设置默认值,这样即使没有在字段中输入任何内容,您仍然可以提取值。

<input type='hidden' id='userID' value="defaultText"/>

参考(JSFiddle):https://jsfiddle.net/e7zkhhny/ 附注:将占位符放在输入字段上通常是个好主意。

答案 1 :(得分:1)

您的javascript无法找到该值,因为您的html未创建。

在获取值之前尝试创建它。

document.write("<input type='hidden' id='userID' value='user1234'>");

var userID = "";
userID = $('#userID').val();
console.log(userID);

document.write("<a href='http://sample/folder/" + userID + "/Documents/Forms/All.aspx'><li>test</li></a>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 2 :(得分:1)

您正在尝试从页面上尚不存在的元素中检索值。只有在此语句运行document.write("<input type='hidden' id='userID'>");

后才会存在

要解决此问题,

1)确保只有在使用$( document ).ready(function() {

加载hml后javascript才会运行
$( document ).ready(function() {
    var userID = ""
    userID = $('#userID').val();

    $('#link').attr("href", "http://sample/folder/" + userID + "/Documents/Forms/All.aspx");
}

2)将以下html放在您的网站上:

<input type='hidden' id='userID' value="0">
<a id='link' href=''><li>test</li></a>