4

ユーザーが「名前を入力してください」と入力した場合に、「おっと、何も入力していないようです」と警告する方法を知りたいです。if と elseif がありますが、else がうまくいくかどうかわかりません。これが私のコードです

    <!DOCTYPE html>
    <html>
    <head>
    <title>Home</title>
    <link rel="stylesheet" type="text/css" href="style.css"/>
    </head>
    <body style="background-color: silver">
    <script>
        var name=prompt("Enter your name", "Enter your name")
        if (name !== '') {
            alert("Welcome" + " " + name)
        } else if(name !== false) {
            prompt("Oops, looks like you didn't enter anything");
        }
    </script>
    </body>
    <html>
4

4 に答える 4

1

このメソッドは、prompt() と同じ引数を取る関数 getName() を定義します。デフォルト値が指定されていない場合は、渡された質問が使用されます。次に、これらの値を使用してユーザーに名前を尋ねます。ユーザーが不満足な応答を返した場合、つまり、虚偽(name === ''、name === null など) または提供したプロンプトと同等の応答が返された場合、エラー メッセージを含む新しいプロンプトをポップしますが、同じです。デフォルトのメッセージ。

function getName(ques, def) {
  def = def || ques; // Make default param optional
  var name = prompt(ques, def);

  if (name && name !== '' && name != def) {
    return name;
  } else if(name !== false) {
    return getName("Oops, looks like you didn't enter anything", def);
  }
};

var name = getName("Enter your name");
alert('Your name is: ' + name);

デモ: http://cdpn.io/rlJGj

ユーザーエクスペリエンスの観点から、これには注意してください。多くの理由から、実に恐ろしいことです。ユーザーがキャンセルを押すと、許容できる値を入力して [OK] を押すまでプロンプトが表示されます。実際、最高のユーザー エクスペリエンスにはなりません。

于 2013-08-17T02:33:38.747 に答える
0
<script>
var name=prompt("Enter your name", "Enter your name")
if (name!=='' && name!=='Enter your name') {
alert("Welcome" + " " + name)
} else if(name!==false) {
prompt("Oops, looks like you didnt enter anything");
}
</script>

デモ

于 2013-08-17T02:12:03.593 に答える