12

入力要素のプレースホルダー属性を解釈しないブラウザーのフォールバックソリューションを見つけようとしています。この単純なjQueryスクリプトがありますが、エラーがスローされます

SecurityError: "The operation is insecure.
this.value = val;"

これが私のスクリプトです:

$('document').ready(function(){
       $('input').each(function() {
           if ($(this).val() === '' || $(this).val() === undefined) {
               $(this).val($(this).attr('placeholder'));
           }
       });
});

誰か私ができることについて何か考えはありますか?または私が間違っていることは何ですか?または、このエラーはどういう意味ですか?これはFirefoxで発生しますが、他のブラウザではまだテストされていません。

4

2 に答える 2

28

プロジェクトで同様の問題を修正しました。<input type="file" ...>入力の値を設定しようとしていたことがわかりました。タイプに関係なくドキュメントのすべての入力を選択しているため、同じ問題に直面している可能性があります。

logファイアバグがインストールされている場合は、入力の値を変更する前にコマンドを挿入して、このエラーの原因となる入力を探してみてください。

$('document').ready(function(){
       $('input').each(function() {
           if ($(this).val() === '' || $(this).val() === undefined) {

               // Log goes here
               window.console.log(
                   'There is an input without a value!', 
                   this);

               $(this).val($(this).attr('placeholder'));
           }
       });
});
于 2012-09-03T14:47:26.327 に答える
0

antoher関数に関連して安全でない警告がありました。単純にその理由は、ライブラリ関数がパラメータとして指定された配列を使用して呼び出されたが、要素(dom)を予期していたためです。結果は期待通りでしたが、確かにそうはなりません。したがって、変数のタイプがあなた(または反対側)が望むものであるかどうかを確認してください。

于 2012-12-19T17:03:57.077 に答える