2017-10-05 12 views
-1

このjQuery関数をJavaScript onkeyupまたはonchange関数に変換してください。 JavaScriptとして変更しようとすると、私はいつもエラーを未定義にしています。jQueryからJavaScriptへの関数

お手数をおかけしますようお願い申し上げます。

var inp = $("#txt"); 
var tbl = document.getElementById("myTable"); 
// where #txt is the id of the textbox 

inp.keyup(function (event) { 
    if (event.keyCode == 13) { 
     if (inp.val().length > 0) { 
      var trow = document.createElement('tr'); 
      var tdata_type = document.createElement('td'); 
      var tdata_code = document.createElement('td'); 
      tdata_type.textContent = $("#select option:selected").text(); 
      tdata_code.textContent = inp.val(); 

      trow.appendChild(tdata_code); 
      trow.appendChild(tdata_type); 
      tbl.insertBefore(trow,tbl.firstChild); 
     }else{ 
      alert("Barcode length insufficient"); 
     } 
    inp.val(''); 
    } 

}); 

Tried this but I got errors. (index):86 Uncaught ReferenceError: barcode is not defined at HTMLInputElement.onkeyup

<input type="text" name="yes" id="txt" onkeyup="barcode()"> 
function barcode(){ 
     var inp = $("#txt"); 
     var tbl = document.getElementById("myTable"); 

     if (event.keyCode == 13) { 
      if (inp.val().length > 0) { 
       var trow = document.createElement('tr'); 
       var tdata_type = document.createElement('td'); 
       var tdata_code = document.createElement('td'); 

       tdata_type.textContent = $("#select option:selected").text(); 
       tdata_code.textContent = inp.val(); 

       trow.appendChild(tdata_code); 
       trow.appendChild(tdata_type); 
       tbl.insertBefore(trow,tbl.firstChild); 
      }else{ 
       alert("Barcode length insufficient"); 
      } 
     inp.val(''); 
     } 
    } 

フルしようとしたコードにここを参照してください:http://jsfiddle.net/sLzsweyd/

+0

あなたのコードを試してみましたか? –

+0

私の投稿を編集する – Jopekz

+1

そのエラーメッセージが[JSFiddleによる]理由(https://stackoverflow.com/questions/5468350/javascript-not-running-on-jsfiddle-net)の理由。それはjQueryとは関係ありません。 – Ivar

答えて

0

あなたはonLoadとしてLOAD TYPEを設定しています。

enter image description here

のでjsfiddleはあなたのfunctionの周りにラッパーを追加しました。

$(window).load(function(){ 
    function barcode() { 

    } 
}); 

変更LOAD TYPENo wrap - in <head>

Updated fiddle

1

function barcode(event) { 
 
    var inp = $("#txt"); 
 
    var tbl = document.getElementById("myTable"); 
 
    if (event.keyCode == 13) { 
 
     if (inp.val().length > 0) { 
 
     var trow = document.createElement('tr'); 
 
     var tdata_type = document.createElement('td'); 
 
     var tdata_code = document.createElement('td'); 
 

 
     tdata_type.textContent = $("#select option:selected").text(); 
 
     tdata_code.textContent = inp.val(); 
 

 
     trow.appendChild(tdata_code); 
 
     trow.appendChild(tdata_type); 
 
     tbl.insertBefore(trow, tbl.firstChild); 
 
     } else { 
 
     alert("Barcode length insufficient"); 
 
     } 
 
     inp.val(''); 
 
    } 
 
    }
.table-header {} 
 

 
.table-cell { 
 
    width: 100px; 
 
    height: 20px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<select id="select"> 
 
    <option>Statement of Account</option> 
 
    <option>Disconnection Notice</option> 
 
</select> 
 
<input type="text" name="yes" id="txt" onkeyup="barcode(event)"> 
 
<table> 
 
    <thead> 
 
    <tr class="table-header"> 
 
     <td class="table-cell">Type</td> 
 
     <td class="table-cell">Barcode</td> 
 
    </tr> 
 
    </thead> 
 
    <tbody id="myTable"> 
 
    <tr class="table-row"> 
 
     <td class="table-cell-text"> 
 
     </td> 
 
     <td class="table-cell-text"> 
 
     </td> 
 
    </tr> 
 
    </tbody> 
 
</table>

0
<input type="text" name="yes" onkeyup="barcode()" /> 
<script> 
function barcode(event) { 
    if (event.keyCode == 13) { 
     if (this.value.length > 0) { 
      var tbl = document.getElementById('myTable'), 
       trow = document.createElement('tr'), 
       tdata_type = document.createElement('td'), 
       tdata_code = document.createElement('td'), 
       select_el = document.getElementById('select'); 
      tdata_type.innerHTML = select_el.options[ select_el.selectedIndex ].value; 
      tdata_type.innerHTML = this.value; 
      trow.appendChild(tdata_code); 
      trow.appendChild(tdata_type); 
      tbl.insertBefore(trow, tbl.firstChild); 
     } else { 
      alert('Barcode length insufficient'); 
     } 
     this.value = ''; 
    } 
} 
</script> 
関連する問題