2

具体的にはinput[type=date]、イベントが発生するかどうかをテストしますinputか?

4

2 に答える 2

3

jsFiddle の例

あなたはこれを行うことができます:

 var element = document.getElementById('myElement');
 var supported = 'oninput' in element;
于 2012-11-20T17:14:29.720 に答える
3

このウェブサイトを見て、試してみることをお勧めします

テスト B: 入力に対して setAttribute を使用して oninput を設定し、node.oninput が関数であるかどうかを確認します テスト C: w3 イベント API を使用して入力を作成し、キープレスを偽造して oninput が起動するかどうかを確認します

テスト C の JavaScript は次のとおりです。

function testC(){
    var input = document.createElement('input'),
        e = document.createEvent("KeyboardEvent");
    // set type for DATE
    input.setAttribute('type', 'date');
    e.initKeyEvent("keypress", true, true, window, false, false, false, false, 0, "e".charCodeAt(0));
    // use initKeyboardEvent for webkit
    document.body.appendChild(input);
    input.addEventListener("input", function(e) { alert('C Successful'); e.preventDefault(); e.stopPropagation(); }, false);
    input.focus();
    input.dispatchEvent(e);
    document.body.removeChild(input);
}

編集: テスト コードはテスト ページからコピーされ、いくつかの小さな変更 (var の位置、type=date、alert) のみが含まれます。今すぐクロムで(に変更initKeyEventした後)実行しましたが、何も起こりませinitKeyboardEventんが、行をコメントアウトしremoveChildて手動で実行すると、成功メッセージが表示されます。シミュレートされたイベントがそれを呼び出さなかった理由がわからないため、コードに適用する前にこれを調べる必要があります。

于 2012-11-20T17:14:47.867 に答える