-3

入力データをチェックしてシリアル化するJavascript関数があります.validはIE8では機能しませんが、IE9および10では機能します

function sendData()
{
var inputData=$("#DataContainer").find(":input");
if(validate&& !inputData.valid()) return;
//some other codes
}

IE9 および 10 では、inputData.valid() は 0、つまり false ですが、IE8 では 1、つまり true であり、なぜ同じデータ セットに対してこの動作が行われるのか疑問に思っています。その結果、関数に関連付けられたアクションが機能しなくなります。

ありがとう

4

2 に答える 2

0

@Jack: IE8 エミュレーター (真の IE8 ではない) で valid() メソッドを使用していると思います。IE8エミュレータでは全てのフィールドを必須フィールドにしています。まず、すべての入力フィールドを検証してから、データをシリアル化する必要があります

$("#DataContainer").validate({
    onkeyup: function(element) { $(element).valid(); },  // check validation on key up  
    rules: {
        txt_Topic: "required",
        txt_Date: "required"
    },
    message: {
        txt_Topic: "This field is required.",
        txt_Date: "This field is required."
    }
});

// if is valid call functions
if($('form #DataContainer').valid()) {
    sentData();
} 

function sentData() {
    var inputData = $("#DataContainer").serializeObject();
}
于 2013-08-01T12:34:25.307 に答える