2017-08-01 1 views
2

私のアプリケーションはReactを使用して作成されました。私はJSを使用してフォームフィールドの値をあらかじめ入力しようとしています。すべてのブラウザで正常に動作していますが、IE 11では動作しません。dispachEventを使用したフォームfeildの事前入力はIEでは機能しません。すべてのブラウザで正常に動作します

IEコンソールでエラーがサポートされていません。

私はフォームフィールドをあらかじめ入力していました。

$(document.body).on('change', '#retailer', function() { 

     var retail_val = $(this).val(); 

     //Storing the retailer value in the respective hidden text field. 
     if (retail_val != "0") { 
      var el = document.getElementById("text_6551650686371-InputField"); 
      el.value = retail_val; 
     //calling the function 
      doEvent(el, 'input'); 

     } 
     if (retail_val == "0") { 
      var el = document.getElementById("text_6551650686371-InputField"); 
      el.value = ""; 
      //calling the function 
      doEvent(el, 'input'); 

     } 
}); 
function doEvent(obj, event) { 
     event = new Event(event, { 
      target: obj, 
      bubbles: true 
     }); 

     return obj ? obj.dispatchEvent(event) : false; 
    } 

This is the error screenshot in IE 11 注:私のアプリは、それが動作していない反応を使用して作成されたとして、私は、.val()メソッドを試してみました。 IEのフォームフィールドの値もあらかじめ入力しておいてください。また、タブを変更すると、フィールドの値がオフになります。

+1

なぜ 'jQuery.Event'と' .trigger() 'を使用しないのですか? – Barmar

+1

どのように配置する必要があり、どこでトリガーできますか?私にコードスニペットを提案してください。 –

答えて

0

あなたがイベントをトリガする必要がある理由私はわからないんだけど、私は、これはそれを行うべきだと思う:

$("#text_6551650686371-InputField").val(retail_val).trigger("input"); 
+1

私は上記のコードを使用しましたが、入力のフロントエンドの実際の値属性が更新されていません。私はこのアプリケーションが反応で行われると思うのは、それが葛藤している可能性がありますか?私が掲示した上記のコードはIE以外のすべてのブラウザで正常に動作しています。 –

1

this answerによると、それはあなたが「のTextInput」にイベント名を変更する場合は動作して(やりますこれはブラウザをチェックした後)

関連する問題