2011-12-24 15 views
0

私は以下のようにphpを持っています。ページにはJavaScriptのバリデーションがいくつかあります。私はサイトfound hereにあるgen_validatorv4.jsを利用しています。javascriptフォームの検証 - フォーム送信時に2つのスクリプトを呼び出す

このスクリプトは完全に機能しますが、日付の時間フィールドで比較の検証を行うことはできません。これを行うには、私は別のstackoverflow投稿found hereの助けを得ました。 @ RobGに感謝してくれてありがとう。

私の問題は、両方のスクリプトをページに追加すると、1つだけ動作し、もう一方は無効になるということです。フォームを提出するときに、どのようにして両方のコードセットを呼び出すことができますか?

私の完全なコードは、以下のとおりです。事前にお礼をいただきありがとうございました。 ライアン

<html> 
<head> 
<title> 

</title> 
<script src="datetimepicker_css.js"></script> 
<script language="JavaScript" src="gen_validatorv4.js" type="text/javascript" xml:space="preserve"></script> 
</head> 


<body> 

<?PHP 
$usernname1=$session->username; 

//trailers 
$trailers="SELECT vehicletypename from vehicletypes"; 
$resulttrailer=mysql_query($trailers); 

$optionstrailer=""; 

while ($row=mysql_fetch_array($resulttrailer)) { 

    $trailer=$row["vehicletypename"]; 
    $optionsdelivery.="<OPTION VALUE=\"$trailer\">".$trailer; 
} 



//Source 
$sources="SELECT sourcename from shuttlesources"; 
$resultsources=mysql_query($sources); 

$optionssources=""; 

while ($row=mysql_fetch_array($resultsources)) { 

    $sourcename=$row["sourcename"]; 
    $optionssources.="<OPTION VALUE=\"$sourcename\">".$sourcename; 
} 


//Destination 
$destination="SELECT destinationname from shuttledestinations"; 
$resultdestination=mysql_query($destination); 

$optionsdestination=""; 

while ($row=mysql_fetch_array($resultdestination)) { 

    $destinationname=$row["destinationname"]; 
    $optionsdestination.="<OPTION VALUE=\"$destinationname\">".$destinationname; 
} 


//routes 
$routesql="SELECT routename from deliveryroutes where transporttype='localpmb'"; 
$resultdestination=mysql_query($routesql); 

$optionsroute=""; 

while ($row=mysql_fetch_array($resultdestination)) { 

    $routename=$row["routename"]; 
    $optionsroute.="<OPTION VALUE=\"$routename\">".$routename; 
} 

?> 



<form onsubmit="return checkDates(this)" name="myform" id="myform" action=captureshuttledelivery2.php method=post> 
<font color=red><b>Provide information to create shuttle delivery</b></font><br><br> 
<table> 
<tr> 
<td width=150> 
<font color=blue>TRAILER 
</td> 
<td width=150> 
<font color=blue>SOURCE 
</td> 
<td width=150> 
<font color=blue>WEIGHT 
</td> 

</tr> 
<tr> 

<td> 
    <SELECT NAME=trailer style="width:140px;"> 
    <OPTION VALUE=0> 
    <?=$optionsdelivery?> 
    </SELECT> 
</td> 
<td> 
    <SELECT NAME=source style="width:140px;"> 
    <OPTION VALUE=0> 
    <?=$optionssources?> 
    </SELECT> 
</td> 
<td> 
<input type=text name=weight id=weight> 
</td> 
</tr> 
<tr> 
<td width=150> 
<font color=blue>REF NUMBER 1</b></font> 
</td> 
<td width=150> 
<font color=blue>REF NUMBER 2</b></font> 
</td> 
<td width=150> 
<font color=blue>REF NUMBER 3</b></font> 
</td> 
<td width=150> 
<font color=blue>REF NUMBER 4</b></font> 
</td> 
</tr> 
<tr> 
<td> 
<input type=text name=refnumber id=refnumber> 
</td> 
<td> 
<input type=text name=refnumber2 id=refnumber2> 
</td> 
<td> 
<input type=text name=refnumber3 id=refnumber3> 
</td> 
<td> 
<input type=text name=refnumber4 id=refnumber4> 
</td> 
</tr> 
<tr> 
<td> 
<font color=blue>COLLECTION TIME 
</td> 
<td> 
<font color=blue>DELIVERY TIME 
</td> 

</tr> 
<tr> 

<td> 
<input type="text" id="collectdatetime" name="collectdatetime"> 
<img src="images2/cal.gif" onclick="javascript:NewCssCal ('collectdatetime','yyyyMMdd','dropdown',true,'24')" style="cursor:pointer"/> 
</td> 
<td> 
<input type="text" id="deliverdatetime" name="deliverdatetime" > 
<img src="images2/cal.gif" onclick="javascript:NewCssCal ('deliverdatetime','yyyyMMdd','dropdown',true,'24')" style="cursor:pointer"/> 
</td> 
</tr> 

<tr> 
<td colspan=4> 
<font color=blue>COMMENTS 
</td> 
</tr> 
<tr> 
<td colspan=4> 
<input type=text name=comments id=comments size=100 value=none> 
</td> 
</tr> 


</table> 
<table> 
<tr><td> 
<input type=submit name=submit id=submit value="Save Delivery"> 
</td></tr></table> 


</form> 

<script> 
function checkDates(form) { 
    if (form.collectdatetime.value >= form.deliverdatetime.value) { 
    alert('Collection time must be after deliver time'); 
    return false; 
    } 
} 
</script> 
<script language="JavaScript" type="text/javascript" xml:space="preserve"> 
//<![CDATA[ 
//You should create the validator only after the definition of the HTML form 
    var frmvalidator = new Validator("myform"); 

    frmvalidator.addValidation("trailer","dontselect=0","Please select a TRAILER TYPE"); 

    frmvalidator.addValidation("source","dontselect=0","Please select a SOURCE"); 

    frmvalidator.addValidation("weight","req","Please enter the LOAD WEIGHT"); 
    frmvalidator.addValidation("weight","numeric","Entered LOAD WEIGHT not a number"); 

    frmvalidator.addValidation("refnumber","req","Please enter at least one REFERENCE NUMBER"); 
    frmvalidator.addValidation("refnumber","numeric"); 

    frmvalidator.addValidation("collectdatetime","req","Please enter a COLLECTION DATE AND TIME"); 

    frmvalidator.addValidation("deliverdatetime","req","Please enter a DELIVERY DATE AND TIME"); 

//]]> 

</script> 

    </body> 
    </html> 
+0

@mplungjanなぜあなたはコメントとして投稿しますか?質問に対するコメントではなく、決定的な答えです。これは、Ryan Smithがこれを正解とすることができないため、絶対に意味をなさない。目的の説明を教えてください! – Matmarbon

+0

@mplungjan私はそれは良い答えだと思うが、それは良いコメントだとは思わない。私は似たような答えを待つつもりです。私はそれが原理的な問題であると認めますが、私はStackoverflowのどこにいてもこれらのコメントを好きではありません。 – Matmarbon

+0

Okeee .......... - コメントを削除し、回答として投稿 – mplungjan

答えて

1

二つの値が直接これをテストされていない

を比較することはできませんので、あなたはCUSTOMバリデータを必要とする - 私たちは、日付を作成したり、datpicker getTime()値にアクセスする必要があると思うの代わりのでしょう入力フィールドの文字列値:

frmvalidator.setAddnlValidationFunction("DoCustomValidation"); 

function DoCustomValidation() { 
    var form = document.forms["myform"]; 
    if (form.collectdatetime.value >= form.deliverdatetime.value) { 
    alert('Collection time must be after deliver time'); 
    return false; 
    } 
    return true; 
} 
+1

私の世界のバランスが復元されました:) – Matmarbon

関連する問題