2016-05-12 7 views
0

私は、テキストボックスから値を変数にロードする方法を探しています。テキストボックスから値を変数にロードする方法

私が試してみた:

<p> 
<textarea id="Text" name="Text" rows="6" cols="36"></textarea> 
</p> 
<p> 
<input type="button" name="Button" value="Do it" onclick="javascript:job()" /> 
</p> 
 
    function job() { 

     var data = {}; 

     data = document.getElementById("Text").value; 

     // other part of code 
    } 

をこの方法でdoesntの仕事。私は自分のデータを入れた場合は{}スクリプトは

完璧に作業を例に動作します:

 
var data = { 
    "Something1": "Otherthing1", 
    "Something2": "Otherthing2", 
    "Something3": "Otherthing3", 
}; 

をしかし、データが異なるそれぞれの時間であり、私は、ユーザー入力からそれをロードする必要がある理由thatsの

編集: コンソールからの作業スクリプトは、データを返します。

Object {Something1: "Otherthing1", Something2: "Otherthing2"}

何も渡しません。

答えて

1
    を使用する必要があります
  1. javascript:ラベルを削除します。

function job() { 
 
    var data = JSON.parse(document.getElementById("Text").value); 
 
    console.log(data); 
 
}
<p> 
 
    <textarea id="Text" name="Text" rows="6" cols="36">{"1": "49.9138756N, 16.6112022E", "2": "50.0225236N, 15.7659417E"}</textarea> 
 
</p> 
 
<p> 
 
    <input type="button" name="Button" value="Do it" onclick="job()" /> 
 
</p>


最初の試みは、これに答えるために:それはあなたがテキストフィールドにJSONを貼り付けたい場合は

  • を必要とされていない、あなたはJSON.parseを使用する必要があります限定情報付き:

    あなたのコードはここで働いているようだ:https://jsfiddle.net/mplungjan/bodmshj4/

    function job() { 
     
        var data = {}; 
     
        // example 1 
     
        data["text"] = document.getElementById("Text").value; 
     
        console.log("Example 1",data); 
     
        // example 2 
     
        data = document.getElementById("Text").value; 
     
        console.log("Example 2",data); 
     
        // example 3 
     
        data = { 
     
        "text":document.getElementById("Text").value, 
     
        "Something2": "Otherthing2", 
     
        "Something3": "Otherthing3" 
     
        } 
     
        console.log("Example 3",data); 
     
    }
    <p> 
     
        <textarea id="Text" name="Text" rows="6" cols="36"></textarea> 
     
    </p> 
     
    <p> 
     
        <input type="button" name="Button" value="Do it" onclick="job()" /> 
     
    </p>

    が、そうではない、あなたが期待しますか。

    var data = {} 
    

    は、データに空のオブジェクトを割り当てます。

    data = document.getElementById("Text").value; 
    

    は、オブジェクトを文字列で上書きします。

    var data = { 
        "text":document.getElementById("Text").value 
    } 
    

    またあなたのために動作します -

    これらの1つは、おそらく、あなたが

    var date = {} using 
    data["text"] = document.getElementById("Text").value; 
    

    または

    data["text"] = document.getElementById("Text").value; 
    

    data.text値が設定されます欲しいものです。

  • +0

    コンソールからの作業スクリプトは、オブジェクト{Something1: "Otherthing1"、Something2: "Otherthing2"}としてデータを返します。あなたのコードを試して、それを返しますObject {text: "" Something1 ":" Otherthing1 "、" Something2 ":" Otherthing2 "、"} –

    +0

    あなたは "自分のコードを試した"ことを教えてくれますか?私はこれが好きではないと確信しています: 'var data = { " text ":document.getElementById(" Text ")。値、 "Something2": "Otherthing2"、 "Something3": "Otherthing3" } - 更新された例を参照 – mplungjan

    +0

    ここでは、この例は正しく動作しています - https://jsfiddle.net/72kgwL4u/テキストボックスから異なる –

    -2

    これはあなたに役に立ちます
    var data = document.getElementById( "Text")。val();

    +0

    .val()はjQueryです。 。値は平易ですJS – mplungjan

    0

    あなたは正確にオブジェクトを使用する場合は、このいずれかを使用してのJS関数を国防省ができます:

    var data = {}, index = 0;  
    function job() { 
        data['Something'+index] = document.getElementById("Text").value; 
        index++; 
    } 
    
    1

    あなたはdata.text代わりのdata

    function job() 
     
    { 
     
         var data = ''; 
     
         data = document.getElementById("Text").value; 
     
    \t console.log(JSON.parse(data)); 
     
         // other part of code 
     
    }
    <p> 
     
    <textarea id="Text" name="Text" rows="6" cols="36"></textarea> 
     
    </p> 
     
    <p> 
     
    <input type="button" name="Button" value="Do it" onclick="javascript:job()" /> 
     
    </p>

    +0

    @mplungjan申し訳ありませんが、私はコメントをチェックしていません..私は私の答えを削除する必要がありますか? –

    +0

    それは大丈夫です:)良いコンソールbtw - 私はそれを借りる:) – mplungjan

    +0

    ハハええ確信して!ありがとうございます..;) –

    1

    あなたはobject[key] = valueまたはobject.key = value

    <script type="text/javascript"> 
        var count = 0; 
        var data = {}; 
        function job() { 
          data["Something"+(++count)] =document.getElementById("Text").value;  
          console.log(data); 
         }   
        </script> 
    
    0

    してオブジェクトのキー/値のペアを追加することができますがあなたのために、このOKですか? https://jsfiddle.net/pLrjvk0x/

    変数データにObjectを指定した場合でも、値は単一の文字列になります。私はそれを分割して配列を持つことができます。私はあなたがStringの代わりにObjectにデータを必要としていることを理解しました。そして、私はそれを(オブジェクトではなく配列である)この方法を想像することしかできませんでした。これはあなたの問題ではない場合は教えてください。

    var splitted = data.split("\n"); 
    
    +0

    いいえ、不要な文字がたくさん返されます –

    関連する問題