JavaScriptを使用して隠れた入力フィールドの値を変数として下のURLパスに渡しますが、コードを調べると、私は変数をしたい場所を定義されていません。JavaScriptを使用して入力値を変数として渡す
私は本当にこの問題を解決したいと思います。非表示の入力フィールドの値ではなく、値が「未定義」である理由は何ですか?
JavaScriptを使用して隠れた入力フィールドの値を変数として下のURLパスに渡しますが、コードを調べると、私は変数をしたい場所を定義されていません。JavaScriptを使用して入力値を変数として渡す
私は本当にこの問題を解決したいと思います。非表示の入力フィールドの値ではなく、値が「未定義」である理由は何ですか?
あなたのhtmlが作成されていないため、JavaScriptが値を見つけることができません。
値を取得する前に作成してください。
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>
入力フィールドに値がないため、定義されていません。フィールドに何も入力されていなくても値を抽出できるように、フィールドにデフォルト値を設定してください。
<input type='hidden' id='userID' value="defaultText"/>
リファレンス(JSFiddle):https://jsfiddle.net/e7zkhhny/ サイドノート:それは通常、入力フィールドにプレースホルダを置くことをお勧めします。
あなたはまだページ上に存在しない要素から値を取得しようとしています。この文は、この問題を回避するには
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)は、以下を置いて使用してのみHML負荷後のJavaScriptが実行されていることを確認し、のみ存在しますあなたのサイトのhtml:
[なぜjQueryやgetElementByIdのようなDOMメソッドが要素を見つけられないのですか?](http:// stackoverfl ow.com/questions/14028959/why-does-jquery-or-a-dom-method-such-as-getelementbyid-not-find-the-lement) – Xufox
最初に行1に欠落している ';'と第2に、あなたのページにおそらく#userIDが存在しません。 – andybeli