2016-05-11 13 views
2

JavaScriptを使用して隠れた入力フィールドの値を変数として下のURLパスに渡しますが、コードを調べると、私は変数をしたい場所を定義されていません。JavaScriptを使用して入力値を変数として渡す

私は本当にこの問題を解決したいと思います。非表示の入力フィールドの値ではなく、値が「未定義」である理由は何ですか?

+1

[なぜ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

最初に行1に欠落している ';'と第2に、あなたのページにおそらく#userIDが存在しません。 – andybeli

答えて

1

あなたの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>

1

入力フィールドに値がないため、定義されていません。フィールドに何も入力されていなくても値を抽出できるように、フィールドにデフォルト値を設定してください。

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

リファレンス(JSFiddle):https://jsfiddle.net/e7zkhhny/ サイドノート:それは通常、入力フィールドにプレースホルダを置くことをお勧めします。

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)は、以下を置いて使用してのみHML負荷後のJavaScriptが実行されていることを確認し、のみ存在しますあなたのサイトのhtml:

関連する問題