1

これは私には非常に奇妙に思えますが、関数を呼び出すだけでポップアップ確認ボックスが機能しますが、php コードでフォームから値を取得しようとすると、ポップアップ ボックスがまったく機能しません!

javascript:

function ConfirmBox(){
    cert = cValForm.elements["cVal"].value;
    answer = confirm("Are you sure you want to delete " + cert + " and all of its courses?");
     if (answer){
         alert("Entry Deleted");
     }
     else{
         alert("No action taken");
     }             
}

PHP:

echo "<form name='cValForm'>";
echo "<input type='hidden' name='cVal' value='TEST' /> ";
echo "<input type='button' onclick='ConfirmBox()' value='Delete'/>";
echo "</form>";

行をコメントアウトするとすぐに:

cert = cValForm.elements["cVal"].value;

文字列内の証明書値を取り除くだけでなく、ポップアップは完全に正常に機能します。フォームから間違った値を取得していますか? それとも、ここで何かが完全に欠けていますか? ありがとう!

4

4 に答える 4

2

フィールドの値を見つけることができないため、スクリプトが壊れていると思いますcVal

名前だけでなく ID も使用するように HTML を変更します。

<form name='cValForm'>
  <input type='hidden' id="cVal" name='cVal' value='TEST' />
  <input type='button' onclick='ConfirmBox()' value='Delete'/>
</form>

そして、要素がまったく選択されていない場合は、最初に JavaScript をチェックインします。

function ConfirmBox(){
    var certField = document.getElementById( 'cVal' );
    var cert = certField ? certField.value : '';
    var answer = confirm("Are you sure you want to delete " + cert + " and all of its courses?");
     if (answer){
         alert("Entry Deleted");
     }
     else{
         alert("No action taken");
     }             
}

varさらに、すべての変数宣言にキーワードを追加して、これらの変数のスコープをローカル関数に制限する必要があります。あなたの場合、これらの変数はグローバルであり、副作用がある可能性があります。

于 2012-12-04T10:00:17.473 に答える
1

これを試して

function ConfirmBox(){
    cValForm = document.forms[index];
    cert = cValForm.elements["cVal"].value;
    answer = confirm("Are you sure you want to delete " + cert + " and all of its courses?");
     if (answer){
         alert("Entry Deleted");
     }
     else{
         alert("No action taken");
     }             
}
于 2012-12-04T10:00:58.063 に答える
1

次のコードを試してください。

var cert = document.getElementsByName("cVal").value
于 2012-12-04T10:02:55.000 に答える
0

JavaScriptの2行目は次のように変更されます。

cert = document.getElementById('cVal');

PHP2行目は次のように変更されます。

echo "<input type='hidden' id='cVal' value='TEST' /> ";
于 2012-12-04T10:01:47.580 に答える