2

以下のコードを確認してください。プロンプトボックスに入力された値を関数dis()に取得したいと思います。どうやってやるの?

<!DOCTYPE html>
<html>
<head>
<script>
function display()
{
var z=prompt("enter your name...");
if(z!=null)
{
document.getElementById("demo").innerHTML="thankyou"+z+"..";
document.getElementById("case").style.display='block';
}
else
document.getElementById("demo").innerHTML="thankyou";
}
function dis()
{

    var a=document.getElementById("aaa").value;
    alert("your mark is"+a);
}
</script>
</head>
<body>
<p id="demo">click on the button.....</p>
<button type="button" onclick="display()">submit</button>
<div id="case" style="display:none">
<input type="text" id="aaa" name="myText" onDblClick="dis()">enter your mark
</div>
</body>
</html> 
4

2 に答える 2

7

値をdis()関数に直接渡したい場合は、スクリプトを次のように変更します。

function display() {
     var z = prompt("enter your name...");
     if (z != null) {
         document.getElementById("demo").innerHTML = "thankyou " + z + "..";
         document.getElementById("case").style.display = 'block';
         dis(z);
     }
     else
         document.getElementById("demo").innerHTML = "thankyou";
 }
 function dis(arg) {
     alert("your mark is" + arg);
 }
于 2013-01-29T09:40:09.617 に答える
3

独立した関数から値にアクセスできるようにする場合は、値をグローバル変数に格納する必要があります。

<script>
var userName = null;

function display() {
  userName = prompt("enter your name...");
  if (userName != null) {
    document.getElementById("demo").innerHTML="thankyou "+userName +"..";
    document.getElementById("case").style.display='block';
  } else
    document.getElementById("demo").innerHTML="thankyou";
}

function dis() {
    var a=document.getElementById("aaa").value;
    alert(userName + ", your mark is"+a);
}
</script>

関数が完全に独立している場合は、変数にまだ値があるかどうかをすべてテストする必要があることに注意してください。あなたの場合、dis()関数は値が設定された後に表示されるコントロールからのみ呼び出されますが、ユーザーがボタンをもう一度クリックしてキャンセルする可能性があることに注意してください-その場合、名前はに戻されますnullが、case要素はまだ表示されています。

于 2013-01-29T09:36:06.950 に答える