2017-08-04 51 views
1

我想有一個表單(通過ajax注入),有多個驗證。事情是這樣的:如何使用jQuery對注入的Ajax表單進行多重驗證?

<div data-form> <!-- Already on the page --> 
    <!-- Coming from API --> 
    <form> 
    <input type="number" data-input-decimal> 
    <input type="number" data-input-integer> 
    <input type="submit"> 
    </form> 
</div> 

,這是我的jQuery:

var $DATA_INPUT_DECIMAL = $('[data-input-decimal]'); 
var $DATA_INPUT_INTEGER = $('[data-input-integer]'); 
var $FORM = $('[data-form]'); 

$FORM.on('keydown', $DATA_INPUT_DECIMAL, function(e) { 
    console.log('banana'); 
    // This is the validation for the input with decimal 
} 

$FORM.on('keydown', $DATA_INPUT_INTEGER, function(e) { 
    console.log('apple'); 
    // This is the validation for the input with ONLY NUMBERS (0-9) 
} 

怪異的部分是,當我在瀏覽器上測試,這兩個功能被稱爲當我​​任何input S的在表單內。在這種情況下如何正確設置不同的驗證?

提前致謝!

+0

你想實現什麼?序列化自定義表單?你的html不好。如果您生成ajax的響應,您可以將data-input-decimal更改爲'data-input =「decimal」',將data-input-integer更改爲'data-input =「integer」'。 – Petroff

回答

1

你需要簡單的代表團:

$('[data-form]').on('keydown', 'input', function(e) { 
 
    if ($(this).is('[data-input-decimal]')) { 
 
    console.log('decimal'); 
 
    } else if ($(this).is('[data-input-integer]')) { 
 
    console.log('integer'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<div data-form> 
 
    <!-- Already on the page --> 
 
    <!-- Coming from API --> 
 
    <form> 
 
    <input type="number" data-input-decimal> 
 
    <input type="number" data-input-integer> 
 
    <input type="submit"> 
 
    </form> 
 
</div>

相關問題