Chromeがページにスクリプトファイルを読み込もうとしたときに件名にエラーが表示される。 JavaScriptファイルの最後の行にあります。私はそれで何か問題を見つけることができないようです。 Firefoxにエラーはなく、スクリプトは予想通りに動作します。フォーム検証を使うだけ
// JavaScript Document
$(function() {
$('#wm-form').submit(function() {
var errors = false;
var errorMsg = "";
$('.required').each(function() {
if(!validField($(this))) {
errorMsg += $(this).attr('name').capitalize() + " cannot be blank\n";
errors = true;
}
});
var emailAddress = $('#email');
if(isValid(emailAddress) && !(/^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$/.test(emailAddress.val()))) {
errorMsg += "Not a valid email address. Please enter in a correctly formatted email address";
errors = true;
}
if(errors) {
alert(errorMsg);
return false;
}
});
$('.form-focus').click(function() {
$(document).scrollTop(0);
$('#first_name').focus();
return false;
});
});
function validField(element) {
if(!isValid(element.val()) || (element.attr('placeholder') && element.attr('placeholder') == element.val()) ||
(element.attr('type') == 'radio' && !checkedRadio(element))) {
return false;
}
else {
return true;
}
}
function isValid(ele) {
if(ele == null || ele == '') {
return false;
}
else {
return true;
}
}
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
};
function checkedRadio (element) {
var valid = false;
$('input[name="'+ element.attr("name") +'"]:checked').each(function() {
valid = true;
});
return valid;
}
そのソースの最後には、ある種の偽の文字があります。最後の行を削除して追加し直してください。
私はまだそこにあるものを正確に理解することはできません、まだ...
edit - 幅がゼロのスペース、Unicode 200Bだと思います。かなり奇妙に思えますし、それがStackoverflowアーティファクトではないことはもちろんわかりませんが、最後の行全体を含む最後の機能をChromeコンソールにコピー&ペーストすると、エラーが発生します。
そのような文字の悪名高いソースは jsfiddle のようなウェブサイトです。私はそれらに何か問題があると言っているのではありません - それはただ何かの副作用、おそらく編集可能な入力ウィジェットの使用です。
あなたがこの病気のケースを持っていて、あなたがMacOSまたはLinux/Unixを使っているのではないかと思うなら、od
コマンドラインツールはあなたにソースコードの文字の数値を見せることができます。ファイル。 IDEやエディタによっては、「変な」文字を表示することがあります。そのような文字はalwaysではないことに注意してください。たとえば、文字列定数にUnicode文字を埋め込むことは、まったく問題ありません(とにかくもっとも妥当なプログラミング言語では)。言語パーサーが予期しない文字に出会ったときに問題が起こり始めます。
Jsfiddleからコピーしたコードを貼り付けた後、Chromeで同じエラーが発生します。
Jsfiddleのパネルからすべてのコードを選択し、それをフリーテキストエディタのNotepad ++に貼り付けると、問題のある文字が疑問符「?」として表示されるはずです。コードの最後に。この疑問符を削除してから、Notepad ++からコードをコピーして貼り付けると問題は解決します。
複数行の文字列に改行(\n
)文字が含まれているときに同じエラーが発生しました。すべての行を1つにマージし(したがって、すべての改行文字を削除し)、解決に使用されるブラウザに送信します。しかし、コーディングするのは非常に不便でした。
Chromeの現在のバージョンのJavaScriptエンジンでは一重引用符で囲まれ、改行(\n
)文字が含まれている複数行の文字列はサポートされていないという文に遭遇するまで、なぜChromeで問題になるのか理解できませんでしたそれら。機能させるためには、複数行の文字列を二重引用符で囲む必要があります。私のコードをこれに変更して、この問題を解決しました。
これを証明する標準またはChromeドキュメントへの参照を見つけようとします。それまでは、この解決策を試して、同様にうまくいくかどうかを確認してください。
Chromeでも同じエラーが発生しました。 Chromeコンソールから、エラーはHTMLファイルの1行目にあることがわかりました。
実際には.jsファイルにありました。それでsetValidNou(1060, $(this).val(), 0')
エラータイプに気をつけてください。