我正在使用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>");
答案 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() {
$( 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>