0

JavaScript で電話番号セーバーを作成しました。すべてが機能していますが、検索ボックスで名前または番号を検索しても結果が表示されません:

function contact() {
    var nam1=prompt("Please enter the name");
    var num1=prompt("please enter the phone number");
}

contact();

function search() {
    var searc= prompt("Please enter the name of your contact or phone number");
}

search();

//search box

if ( searc == nam1 ) {
    alert("The phone Number is , " + num1);
}

if ( searc == num1 ) {
    alert("The Contact Name is , " + nam1);
}
4

3 に答える 3

2

これを試して:

var nam1='';
var num1='';
var searc='';

function contact() {
    nam1=prompt("Please enter the name");
    num1=prompt("please enter the phone number");
}
contact();
function search() {
    searc= prompt("Please enter the name of your contact or phone number");
}
search();
//search box
if ( searc == nam1 ) {
    alert("The phone Number is , " + num1);
}
if ( searc == num1 ) {
    alert("The Contact Name is , " + nam1);
}

注:使用中にそれらを使用できるようにする必要define these variables globallyがあります。

于 2013-05-03T05:09:17.703 に答える
1

ここでの問題は、変数のスコープです。

これを試して:

var nam1;
var num1;
var searc;

function contact() {

    nam1 = prompt("Please enter the name");
    num1 = prompt("please enter the phone number");

}

contact();

function search() {

    searc = prompt("Please enter the name of your contact or phone number");

}

search();

//search box

if ( searc == nam1 ) {

    alert("The phone Number is , " + num1);

}

if ( searc == num1 ) {

    alert("The Contact Name is , " + nam1);

}
于 2013-05-03T05:10:42.367 に答える
0

JavaScript 変数は、宣言された関数に対してグローバルまたはローカルの特定のスコープでのみ宣言されます。を宣言したので、関数内nam1外部では使用できません。num1searc

エラーコンソールを見てください。通常ReferenceError、少なくとも厳密モードでは、 を取得する必要があります。これを防ぐには、スクリプトの先頭で変数を宣言し、関数で変数を再宣言しないでください。

于 2013-05-03T05:10:55.150 に答える