フォームを検証するためにこのスクリプトを作成しましたが、テキストフィールドを空白のままにしても、入力ボックスや警告メッセージの赤い背景はありませんさあ。ここでJavaScriptフォームの検証でアラートが表示されない、または入力背景の色が変化する
function validateForm()
{
/* For all forms in the document */
for(var i in document.forms)
{
/* Get the forms inputs */
var inputs = document.forms[i].getElementsByTagName("input");
for(var j in inputs)
{
/* Make sure we don't try to validate the submit button */
if(inputs[j].type == "text")
{
if(inputs[j].value.trim() == "" || inputs[j].value.trim() == null)
{
inputs[j].style.backgroundColor = "red";
alert("Please ensure all boxes are filled in");
return false;
}
}
}
}
}
ことができますならば、私のいずれかの形式である:私もスペースを許可しないことをお勧めプレースホルダーテキスト
<input type="text" name="artists" placeholder="Search Artists"...
別の問題のため
<form name="searchArtists" method="get" onsubmit="return validateForm()">
<input type="text" name="artists" placeholder="Search Artists" maxlength="255" size="32" />
<input type="submit" name="submit" value="Search"/>
</form>
Er、私はJSの専門家ではありませんが、 "if(inputs [j] .value ==" "または類似したものではありませんか?それ以外の場合、 "値"と入力の1つを結ぶものは何ですか? – MartynA
@MartynA Yeh私は使用していないがコードのその部分を更新しなかった別の変数として "value"を書きました。私はあなたが示唆したとおりに更新しましたが、まだ動作しません。 –
あなたのデフォルト値は 'アーティストを検索する'、それもチェックしたり、クリック時にデフォルト値をクリアする... https://jsfiddle.net/jbrhodpz/テキストフィールドから削除すると、期待通りに機能します... – sinisake