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

使用Javascript将输入值作为变量传递,javascript,jquery,Javascript,Jquery,我正在使用JavaScript尝试将一个隐藏输入字段的值作为变量传递到下面的url路径中,但是当我检查代码时,我看到了“未定义”变量所在的位置 我真的很想解决这个问题。知道为什么该值是“未定义”的,而不是隐藏输入字段的值吗 var userID = ""; userID = $('#userID').val(); document.write("<input type='hidden' id='userID'>"); document.write("<a href='http

我正在使用JavaScript尝试将一个隐藏输入字段的值作为变量传递到下面的url路径中,但是当我检查代码时,我看到了“未定义”变量所在的位置

我真的很想解决这个问题。知道为什么该值是“未定义”的,而不是隐藏输入字段的值吗

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>");
var userID=”“;
userID=$('#userID').val();
文件。填写(“”);
文件。填写(“”);

由于输入字段没有任何值,因此未定义。确保为字段设置了默认值,这样即使字段中没有输入任何内容,也可以提取值

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

参考(JSFIDLE):
旁注:在输入字段上放置占位符通常是个好主意。

您的javascript找不到值,因为您的html没有创建

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

document.write(“”);
var userID=“”;
userID=$('#userID').val();
console.log(userID);
文件。填写(“”)

您试图从页面上尚不存在的元素中检索值。只有在该语句运行
document.write(“”)之后,它才会存在

为了解决这个问题

1) 确保javascript仅在使用
$(document).ready(function(){

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

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

可能的重复首先,第1行和第二行中缺少的
,用户ID可能不存在于您的页面上。
<input type='hidden' id='userID' value="0">
<a id='link' href=''><li>test</li></a>