-1

入力テキスト ID「ven_prod」の値を返す JavaScript var があり、「ven_prod」の値を使用して、ページを送信せずにデータベースで検索する必要があります。

Java コードで JavaScript 変数を使用できないため、非表示の入力テキスト ID「prod_hidden」に値を設定しましたが、Java コードで値を取得して検索するには、それを送信する必要があります。 。どうすればいいのですか ?

<input id="ven_prod" type="text" placeHolder="Código de Barras" autofocus>
        <input id="prod_hidden" type="text" value="">

        <script>    
            $('#ven_prod').keypress(function (e)
                    {
                        if(e.keyCode==13)
                        {
                            var table = document.getElementById('tbprodutos');
                             var tblBody = table.tBodies[0];  
                             var newRow = tblBody.insertRow(-1);
                             var prod = document.getElementById('ven_prod').value;
                             var qtd = document.getElementById('ven_qtd');
                             var barra = prod.substring(0, 12);
                             var num = prod.substring(14, 16);
                             document.getElementById('prod_hidden').value = barra;
                             var ref = <%=pd.getProdutosBarra(request.getParameter("prod_hidden")).getPro_referencia()%>;
OR
                             var ref = <%=pd.getProdutosBarra(JS VAR 'barras HERE).getPro_referencia()%>;

                             if(prod.length==16) { 
                               var newCell0 = newRow.insertCell(0);  
                               newCell0.innerHTML = '<td>'+ref+'</td>';

                               var newCell1 = newRow.insertCell(1);  
                               newCell1.innerHTML = '<td>'+num+'</td>';  

                               var newCell2 = newRow.insertCell(2);  
                               newCell2.innerHTML = '<td>'+qtd.value+'</td>';

                               var newCell3 = newRow.insertCell(3);  
                               newCell3.innerHTML = '<td>R$ '+valor+'</td>';

                               var newCell4 = newRow.insertCell(4);  
                               newCell4.innerHTML = '<td>'+barra+'</td>';

                                document.getElementById('ref').value = '6755';
                                document.getElementById('imgsrc').src = './?acao=Img&pro_id=1';
                                document.getElementById('valortotal').value = 'Testando novo valor';
                                document.getElementById('ven_prod').value = '';
                                document.getElementById('ven_qtd').value = '1';

                            } else {

                                document.getElementById('ven_prod').value = '';
                                document.getElementById('ven_qtd').value = '1';
                                alert("Código de barras inválido!");
                            }

                            return false;
                        }
            });
        </script>
4

4 に答える 4

1

次のようにjQueryを使用してajax呼び出しを行うことができます。非表示の要素とともにフォーム データを送信します。

var form = jQuery("#YourFormID");
jQuery.ajax({
        type: "POST",
        url: form.attr("action"), 
        data: form.serialize(), // serializes the form's elements.
        success: function(data) {
            console.log(data);
        }
});
于 2013-10-21T04:05:29.453 に答える
0

「pro_barras」という名前の入力テキストの値

本気ですか?これを見てください:

<input type="hidden" id="pro_barras">

入力の名前ではなく、ID です。これを使用して試すことができます:

<input type="hidden" name="pro_barras">

$.ajaxこれで、データベースからデータを要求する新しいページに要求を送信するために使用できます。そして、応答を書き、それを最初のページに戻します。

それが何をするかは、あなたの使い方次第です。単純に jQuery API によるメソッドを使用するようにお願いしますserialize()。これにより、フォームからのデータを使用して単純な URL パラメータを作成し、次のように使用できます。

$.ajax({
  var data = $('#formid').serialize(); // serialize the form..
  url: "link/to/file.cshtml",
  data: data,
  success: function (datares) {
    $('#resultid').html(datares); // write the result in the element
  }
})

そのフィールドから値のみを取得したい場合は、使用できます

var data = $('input[name=pro_barras]').val();

ページを送信せずに。

ボタンをクリックすると、ページを送信する必要がありinput type="submit"ます。あなたが使用できることを防ぐために

$('#idofsubmitbutton').click(function () {
  return false; // stop execution and stay on page..
}

その後、ajaxは続行されます。他の方法は、を削除しinput type="submit"て使用することであり、送信<button></button>は発生しません。

Java コードで値を取得する

これはそうではありませんjava:)そのJavaScriptは、それらはまったく異なります。:)

于 2013-10-21T04:58:21.977 に答える
-2

カスタム属性を入力要素に (Jquery で) 追加することもできます。

<input type='text' id='pro_barras' customattr='myCustomInfo'/>

<script>
 var customValue = $('#pro_barras').attr('mycustomvar');
alert(customValue);
</script>

フィドル

于 2013-10-21T04:04:53.260 に答える