2017-06-21 1 views
0

私は入力を押すか、ボタンを押したときにJavaScript関数を呼び出したいと思います。また、関数で値を取得する必要があります。ここでコール関数は、入力ボタンまたはヒットボタンのいずれかを押します。

は私のフォームです:

<form> 
 
     Farm Number:<br> 
 
     <input id="fnumber" type="text" value="" onKeyDown="findfarm2(event)"> 
 
     <input type="button" value="Find Farm" onclick="findfarm();"> \t 
 
    </form>

そして、ここでは私のJavaScript関数です:

function findfarm2(event) { 
 
\t \t if (event.keyCode == 13){ 
 
\t \t cqlfilter = 'Farm =' + document.getElementById('fnumber').value; \t \t 
 
\t \t unregistered.getSource().updateParams({'LAYERS': 'NCSPCTest:Unreported_Names','CQL_FILTER': cqlfilter}); \t \t 
 
\t \t alert(cqlfilter) 
 
\t \t } 
 
\t \t } 
 
\t \t 
 
function findfarm() { 
 
\t \t cqlfilter = 'Farm =' + document.getElementById('fnumber').value; \t \t 
 
\t \t unregistered.getSource().updateParams({'LAYERS': 'NCSPCTest:Unreported_Names','CQL_FILTER': cqlfilter}); 
 
\t \t alert(cqlfilter) 
 
\t \t } \t

ボタンをbに取り組んでいますut関数はそうではありません。 'findfarm2'関数はアラートをポップアウトできますが、値を 'updateParams'に渡していません。

+0

多分、キーのフォーカスがボタンにある場合にのみ、キーENTERが機能します。 – mariodiniz

答えて

0

Enterボタン(keyCode = 13)を押したときにフォームが送信されているため、関数(findfarm2)が機能しません。

<form id="form" active="#"> 
    <!-- get value (using parameters) --> 
    <input id="first" type="text" value="" onkeydown="find(event, this.value)"> 
    <input id="last" type="button" value="Find Farm" onclick="findfarm();"> 
</form> 

<script type="text/javascript"> 
    document.querySelector('#form').addEventListener('submit', function(e) { 
     e.preventDefault(); // stop form from submitting 

     console.log('You need stop form from submitting!') 
    }); 

    function find(e, val) { 
     if (e.keyCode == 13) { 
      console.log('enter') 
     } 

     var value = document.getElementById('first').value; 

     console.log('My value (using getElementById)' , value) 
     console.log('My value (using parameters)' , val) 
     // resume your code here... 
    } 
    function findfarm() { 
     console.log('Find Farm clicked!'); 
    } 
</script> 
関連する問題