0

onsubmit 関数が機能しません。

私の PHP ファイルには 2 つの形式があります。両方のフォーム タグには、同じ JavaScript ファイルにリンクする onsubmit 属性があります。最初のフォームの onsubmit が機能しています。2 番目の形式で呼び出される関数は、次のように単純化されています。

function UserDataCheck()
{
   return false;
}

フォームタグは

form name='user_form' method='post' onsubmit='return UserDataCheck();'

このタグは <> と二重引用符で囲まれ、PHP ファイルにエコー出力されます。

助けてください。これは私を夢中にさせています!以前は UserDataCheck() でいくつかのデータ チェックを行っていましたが、onsubmit を使用してユーザーの送信を停止できるかどうかを確認するために、そのすべてを削除しました。失敗。

ここにもっとコードがあります!

 echo "<html>"; 
    echo "<head>"; 
    echo "<title>Survey Form</title>"; 
    echo "<link link rel='stylesheet' href='examples.css' type='text/css'>"; 
    echo "</head>";
echo "<script src='validation.js'></script>"; 
echo "<body topmargin='20', leftmargin='20', rightmargin='20', style='background-color:beige; font-family:calibri;'>"; 
echo "<img src='CSE Global.jpg' width='250' height='70' align='right' />";
//--------------------------------------------------------------------- 
// Firstly, we determine who is using this system 
// Check $_GET['dex'] for a value, if provided, then it's the user 
// if not, then it's the administrator (see my notes below the code for 
// more info) 
//--------------------------------------------------------------------- 

"<input type='text' name='dex' length='50'>";
"<input type='boolean' name='sub' length='1'>";
if ($_GET['dex']=="") {  
    //--------------------------------------------------------------------- 
    // $_GET['dex'] is empty so we can presume this is the Admin 
    //--------------------------------------------------------------------- 
    echo "<p style='font-family:cambria;font-size:35px;'> WELCOME ADMIN!</p>"; 


    //--------------------------------------------------------------------- 
    // We now check to see if the form has been submitted or not ... 
    // To do this, we check if the variable 'sub' is in the $_POST array 
    //--------------------------------------------------------------------- 
    if ($_POST['sub']!=1) { 
        //--------------------------------------------------------------------- 
        // The form has not been submitted already so present the "admin form" 
        //---------------------------------------------------------------------


// check that they entered an amount tested, an amount passed,
// and that they didn't pass units than they more than tested



        echo "<form name='admin_form' method='post' onsubmit='if(!AdminDataCheck()) return      false;'>"; 
        echo "<p><label>Scope of Service <label style='color:red'><strong>*</strong></label>    <br/></label> <input type='text' name='scope' length='50' id='ScopeofService' onblur='checkScopeofService()'/><label id='labelScopeofService'></label></p>"; 

これに、さらにラベルとテキスト フィールドが続きます。

そして form タグが閉じられます!

echo "<input type='hidden' name='dex' value={$dex}>"; 
            echo "<input type='hidden' name='sub' value=1>"; 
            echo "<input type='SUBMIT' style='background-color:white' name='submit' value='SUBMIT'>"; 
            echo "</form>"; 

これがvalidation.jsの関数です

function AdminDataCheck()
{
var SoS = document.getElementById('ScopeofService').value;
var PNumber = document.getElementById('ProjectNumber').value;
var numericExp = /^[0-9]+$/;
var alphaExp = /^[A-Za-z ]+$/; 
var Email = document.getElementById('Email').value;
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\-]+\.[a-zA-z0-9]{2,4}$/;

if (!(SoS.match(alphaExp)))
{   
alert("Invalid Scope");
return false;
}
else if(!(PNumber.match(numericExp)))
{
alert("Invalid Project Number.");
return false;
}
else if(!(Email.match(emailExp)))
{
alert("Invalid Email.");
return false;
}
else
{
return true;
}
}

これは数分前に機能していたことを強調させてください。私は変更を加えておらず、ブラウザとサーバーを再起動しただけです。そして、それは機能しなくなりました。これは本当にイライラします!

4

1 に答える 1

0

これを試して:

onsubmit='if(!UserDataCheck()) return false;'
于 2012-07-11T09:21:24.053 に答える