2016-10-04 8 views
1

によってなされる入力ボックスに変更した後、私は、変更後のスクリプトを発射する選択ボックスを持っている(と入力テキストフィールドに日付の変更を行った):コール機能選択

$(window).load(function() { 
    datum = function() { 
    var platba = document.getElementById('payment').value; 
    var today = new Date(); 
    var dd = today.getDate(); 
    var mm = today.getMonth() + 1; //January is 0! 
    var yyyy = today.getFullYear(); 

    today = dd + '.' + mm + '.' + yyyy; 
    if (payment = 'yes') { datet = today; } 
    document.getElementById('datepayment').value = datet; 

それは素晴らしい作品が、今私はDTBに新しい値を保存するjQueryの関数を呼び出す必要があります...

これは、(全体のフォームの入力フィールドの変更後に自動的に動作します)スクリプトを以下により構成されています

<!--JQUERY--> 
<script type='text/javascript'> 
// JQUERY: Plugin 'autoSumbit' 
(function($) { 
    $.fn.autoSubmit = function(options) { 
     return $.each(this, function() { 
      // VARIABLES: Input-specific 
      var input = $(this); 
      var column = input.attr('name'); 

      // VARIABLES: Form-specific 
      var form = input.parents('form'); 
      var method = form.attr('method'); 
      var action = form.attr('action'); 

      // VARIABLES: Where to update in database 
      var where_val = form.find('#where').val(); 
      var where_col = form.find('#where').attr('name'); 

    // ONBLUR: Dynamic value send through Ajax 
      input.bind('blur', function(event) { 

       // Get latest value 
       var value = input.val(); 

       // AJAX: Send values 
       $.ajax({ 
        url: action, 
        type: method, 
        data: { 
         val: value, 
         col: column, 
         w_col: where_col, 
         w_val: where_val 
        }, 
        cache: false, 
        timeout: 10000, 
        success: function(data) { 
         // Alert if update failed 
         if (data) { 
          alert(data); 
         } 
         // Load output into a P 
         else { 
          $('#notice').text('Updated'); 
          $('#notice').fadeOut().fadeIn(); 
         } 
        } 

       }); 
       // Prevent normal submission of form 

     return false; 
      }) 
     // 
     }); 

    } 
})(jQuery); 
// JQUERY: Run .autoSubmit() on all INPUT fields within form 
$(function(){ 
    $('#ajax-form INPUT').autoSubmit(); 
    $('#ajax-form SELECT').autoSubmit(); 
    $('#ajax-form TEXTAREA').autoSubmit();   
}); 
</script> 

Qu estionは:どのようにフィールドのdatepaymentの値をクリックせずにデータベースに保存するのですか?コメントありがとう!

答えて

0

代わりの

input.bind('blur', function(event) 

はここ

input.on('input', function() { 

を試してみてください簡単な例です:

<input type="text" id="input1"/> 
<input type="text" id="input2"/> 
<select id="input3"> 
<option value="ABC">ABC</option> 
<option value="XYZ">XYZ</option> 
</select> 

$(document).ready(function() { 
    $("#input1").on('input', function() { //'input' listener 
    alert($("#input1").val()); 
    }); 
    $("#input2").on('input', function() { //'input' listener 
    alert($("#input2").val()); 
    }); 
    $("#input3").on('change', function() { //'change' listener 
    alert($("#input3").val()); 
    }); 
}); 

jsfiddleリンク:https://jsfiddle.net/kannanore/xdat6axa/

+0

ありがとう!私はそれを試みたが、それは助けなかった。私は、テキストフィールドの変更(新しい値)は "変更"ではないと思います。 –

+0

私はそれを編集しました。今すぐ役立つことを願っています。 –

+0

まだ動作しません。たぶん問題は、スクリプトが2回発射されなければならないことです。SELECT #paymentを保存して初めてテキストフィールド#datepaymentを保存するようにしてください。 –