1092

JavaScriptで検索しています。フォームを使用しますが、ページ上の他の何かを台無しにします。私はこの入力テキストフィールドを持っています:

<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>

そしてこれは私のJavaScriptコードです:

<script type="text/javascript">
  function searchURL(){
    window.location = "http://www.myurl.com/search/" + (input text value);
  }
</script>

テキストフィールドからJavaScriptに値を取得するにはどうすればよいですか?

4

15 に答える 15

2115

入力テキストボックスの値を直接(フォーム要素内に入力要素をラップせずに)取得するには、さまざまな方法があります。

方法1:

document.getElementById('textbox_id').value目的のボックスの値を取得するには

例えば、 document.getElementById("searchTxt").value;

 

注:メソッド2、3、4、および6は要素のコレクションを返すため、[whole_number]を使用して目的のオカレンスを取得します。最初の要素には[0]を使用し、2番目の要素には1を使用ます。

方法2:

document.getElementsByClassName('class_name')[whole_number].valueライブHTMLコレクションを返す使用

たとえば、 document.getElementsByClassName("searchField")[0].value;これがページの最初のテキストボックスである場合です。

方法3:

document.getElementsByTagName('tag_name')[whole_number].valueライブHTMLCollectionも返す使用

たとえば、 document.getElementsByTagName("input")[0].value;これがページの最初のテキストボックスである場合。

方法4:

document.getElementsByName('name')[whole_number].value>これもライブNodeListを返します

たとえば、 document.getElementsByName("searchTxt")[0].value;これがページ内の「searchtext」という名前の最初のテキストボックスである場合。

方法5:

document.querySelector('selector').valueCSSセレクターを使用して要素を選択する強力なものを使用する

たとえば、 名前で選択されたタグ名で選択されたクラスで選択document.querySelector('#searchTxt').value;されたIDで選択
document.querySelector('.searchField').value;
document.querySelector('input').value;
document.querySelector('[name="searchTxt"]').value;

方法6:

document.querySelectorAll('selector')[whole_number].valueこれもCSSセレクターを使用して要素を選択しますが、そのセレクターを持つすべての要素を静的ノードリストとして返します。

たとえば、 名前で選択 されたタグ名で選択されたクラスで選択document.querySelectorAll('#searchTxt')[0].value; されたIDで選択
document.querySelectorAll('.searchField')[0].value;
document.querySelectorAll('input')[0].value;
document.querySelectorAll('[name="searchTxt"]')[0].value;

サポート

Browser          Method1   Method2  Method3  Method4    Method5/6
IE6              Y(Buggy)   N        Y        Y(Buggy)   N
IE7              Y(Buggy)   N        Y        Y(Buggy)   N
IE8              Y          N        Y        Y(Buggy)   Y
IE9              Y          Y        Y        Y(Buggy)   Y
IE10             Y          Y        Y        Y          Y
FF3.0            Y          Y        Y        Y          N    IE=Internet Explorer
FF3.5/FF3.6      Y          Y        Y        Y          Y    FF=Mozilla Firefox
FF4b1            Y          Y        Y        Y          Y    GC=Google Chrome
GC4/GC5          Y          Y        Y        Y          Y    Y=YES,N=NO
Safari4/Safari5  Y          Y        Y        Y          Y
Opera10.10/
Opera10.53/      Y          Y        Y        Y(Buggy)   Y
Opera10.60
Opera 12         Y          Y        Y        Y          Y

便利なリンク

  1. 詳細を含むすべてのバグでこれらのメソッドのサポートを確認するには、ここをクリックしてください
  2. 静的コレクションとライブコレクションの違いは、ここをクリックしてください
  3. NodeListとHTMLCollectionの違いはここをクリックしてください
于 2012-07-19T15:02:14.223 に答える
40
//creates a listener for when you press a key
window.onkeyup = keyup;

//creates a global Javascript variable
var inputTextValue;

function keyup(e) {
  //setting your input text to the global Javascript Variable for every key press
  inputTextValue = e.target.value;

  //listens for you to press the ENTER key, at which point your web address will change to the one you have input in the search box
  if (e.keyCode == 13) {
    window.location = "http://www.myurl.com/search/" + inputTextValue;
  }
}

これがcodepenで機能していることを確認してください。

于 2014-11-04T22:34:10.840 に答える
26

次のように入力を格納する変数を作成します。

var input = document.getElementById("input_id").value;

次に、変数を使用して入力値を文字列に追加します。

= "Your string" + input;

于 2015-06-04T07:12:10.207 に答える
21

次のように入力できるはずです。

var input = document.getElementById("searchTxt");

function searchURL() {
     window.location = "http://www.myurl.com/search/" + input.value;
}
<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>

これを行うためのより良い方法があると確信していますが、これはすべてのブラウザーで機能するようであり、作成、改善、および編集するにはJavaScriptの最小限の理解が必要です。

于 2014-06-01T22:17:59.440 に答える
16

また、次のようにタグ名で呼び出すこともできます。form_name.input_name.value; したがって、特定の形式で決定された入力の特定の値が得られます。

于 2014-06-23T18:10:16.883 に答える
6
<input type="text" onkeyup="trackChange(this.value)" id="myInput">
<script>
function trackChange(value) {
    window.open("http://www.google.com/search?output=search&q=" + value)
}
</script>
于 2013-06-11T09:32:41.937 に答える
6

短い

あなたはによって値を読むことができますsearchTxt.value

function searchURL() {
   let txt = searchTxt.value;
   console.log(txt);
   // window.location = "http://www.myurl.com/search/" + txt; ...
}

document.querySelector('.search').addEventListener("click", ()=>searchURL());
<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>

<button class="search">Search</button>

于 2020-01-10T09:36:27.937 に答える
5

ChromeとFirefoxでテスト済み:

要素IDで値を取得します。

<input type="text" maxlength="512" id="searchTxt" class="searchField"/>
<input type="button" value="Get Value" onclick="alert(searchTxt.value)">

フォーム要素に値を設定します。

<form name="calc" id="calculator">
  <input type="text" name="input">
  <input type="button" value="Set Value" onclick="calc.input.value='Set Value'">
</form>

https://jsfiddle.net/tuq79821/

JavaScript計算機の実装もご覧ください:http ://www.4stud.info/web-programming/samples/dhtml-calculator.html

@ bugwheels94からの更新:このメソッドを使用するときは、この問題に注意してください。

于 2017-04-26T10:47:29.327 に答える
3

あなたinputがにいて、form提出後に価値を得たい場合は、次のようにすることができます

<form onsubmit="submitLoginForm(event)">
    <input type="text" name="name">
    <input type="password" name="password">
    <input type="submit" value="Login">
</form>

<script type="text/javascript">

    function submitLoginForm(event){
        event.preventDefault();

        console.log(event.target['name'].value);
        console.log(event.target['password'].value);
    }
</script>

この方法の利点:ページの例では、入力と情報 用に2つあります。 formsenderreceiver

formget valueに使用しない場合は、および、、、などの各フィールドに
2つの異なるidtagまたは...)を設定できます。 -2つの入力に同じ値を設定した場合は、その後(または.. 。)0または1はまたはを覚えておく必要があります。後でhtmlの2の順序を変更した場合は、このコードをもう一度確認する必要がありますnamesender-namereceiver-namesender-addressreceiver-address
getElementsByNamegetElementsByTagNamesenderreceiverform

を使用する場合は、、、..formを使用できます。nameaddress

于 2019-11-09T08:24:26.490 に答える
3

function handleValueChange() {
    var y = document.getElementById('textbox_id').value;
    var x = document.getElementById('result');
    x.innerHTML = y;
}

function changeTextarea() {
  var a = document.getElementById('text-area').value;
  var b = document.getElementById('text-area-result');
  b.innerHTML = a;
}
input {
  padding: 5px;
}

p {
  white-space: pre;
}
<input type="text" id="textbox_id" placeholder="Enter string here..." oninput="handleValueChange()">
<p id="result"></p>

<textarea name="" id="text-area" cols="20" rows="5" oninput="changeTextarea()"></textarea>
<p id="text-area-result"></p>

于 2021-01-20T06:58:44.430 に答える
2

form.elementsを使用して、フォーム内のすべての要素を取得できます。要素にidがある場合、それは.namedItem( "id")で見つけることができます。例:

var myForm = document.getElementById("form1");
var text = myForm.elements.namedItem("searchTxt").value;
var url = "http://www.myurl.com/search/" + text;

出典:w3schools

于 2018-07-04T07:29:02.603 に答える
2

入力フィールドが多い場合は、onkeyupを使用できます。あなたが4つまたはinputを持っていると仮定します 。それからdocument.getElementById('something').value迷惑です。入力フィールドの値をフェッチするには、4行を書き込む必要があります。

したがって、keyupまたはkeydownイベントでオブジェクトに値を格納する関数を作成できます。

例 :

<div class="container">
    <div>
        <label for="">Name</label>
        <input type="text" name="fname" id="fname" onkeyup=handleInput(this)>
    </div>
    <div>
        <label for="">Age</label>
        <input type="number" name="age" id="age" onkeyup=handleInput(this)>
    </div>
    <div>
        <label for="">Email</label>
        <input type="text" name="email" id="email" onkeyup=handleInput(this)>
    </div>
    <div>
        <label for="">Mobile</label>
        <input type="number" name="mobile" id="number" onkeyup=handleInput(this)>
    </div>
    <div>
        <button onclick=submitData()>Submit</button>
    </div>
</div>

javascript:

<script>
    const data={ };
    function handleInput(e){
        data[e.name] = e.value;
    }
    function submitData(){
        console.log(data.fname); //get first name from object
        console.log(data); //return object
    }
</script>
于 2018-12-11T05:12:52.167 に答える
1
<input id="new" >
    <button  onselect="myFunction()">it</button>    
    <script>
        function myFunction() {
            document.getElementById("new").value = "a";    
        }
    </script>
于 2018-03-07T17:47:44.123 に答える
1

シンプルなjs

function copytext(text) {
    var textField = document.createElement('textarea');
    textField.innerText = text;
    document.body.appendChild(textField);
    textField.select();
    document.execCommand('copy');
    textField.remove();
}
于 2019-01-17T13:14:59.717 に答える
0
function searchURL() {
   window.location = 'http://www.myurl.com/search/' + searchTxt.value
}

したがって、基本的searchTxt.valueには入力フィールドの値を。で返しますid='searchTxt'

于 2021-07-22T05:44:12.300 に答える