1

別の絶対的な初心者の質問に戻ります。フォームを検証していますが、テキスト入力を 2 文字以上 15 文字未満に制限したいと考えています。私が試してみました:

function validateForm(formElement) {
var valid = true;
if (formElement.first_name.value.length < 2) return focusElement(formElement.first_name, 'Please enter a First Name that is more than 2 characters long.');
if (formElement.first_name.value.length > 15) return focusElement(formElement.first_name, 'Please enter a First Name that is less than 15 characters long.');

としても

if (formElement.first_name.value.length < 2 && formElement.first_name.value.length > 15) return focusElement(formElement.first_name, 'Please enter a First Name that is more than 2 and less than 15 characters long.');

どちらもエラーになります。どうすればこれを達成できますか?

4

3 に答える 3

1

ここには論理的な問題があります。長さは 2 未満かつ 15 を超えることはできません。使用する必要があるのは、2 未満または 15 を超えることです。

if (formElement.first_name.value.length < 2 || formElement.first_name.value.length > 15) return focusElement(formElement.first_name, 'Please enter a First Name that is more than 2 and less than 15 characters long.');

valid = trueここで変数を何に使用しているのかもわかりません

于 2012-10-18T04:14:14.783 に答える
0

どのエラーが発生しましたか? FocusElement はユーザー定義関数だと思います。次のようにコードをテストしますが、問題ありません。

<form name="frm">
  <input type="text" name="first_name">
  <input type="button" onClick="validateForm(frm)" value="Submit">
</form>

あなたの validateForm 関数を使用して、FocusElement JavaScript 関数を次のように記述します。

function focusElement(control,message)
{
   control.focus();
   alert(message);
}

2 番目の検証コードを使用する場合は、|| を使用する必要があります。それ以外の &&。

于 2012-10-18T04:40:37.147 に答える
0

2 番目の検証コードが正しくありません。

2 未満であると同時に 15 を超えるものはありません。

||'AND' ではなく、間に'OR' 演算を使用する必要があります&&

とはFocusElement。コードを表示します。

于 2012-10-18T04:17:35.440 に答える