2011-12-24 3 views
0

У меня есть php, как показано ниже. на странице есть проверка javascript. Я использую gen_validatorv4.js, найденный на сайте found here.проверка формы javascript - вызов двух скриптов в форме submit

Этот сценарий отлично работает, однако не может выполнять проверку достоверности полей по дате. Для этого я получил помощь от другого postoverflow post found here. Спасибо @RobG, который дал мне рабочий сценарий проверки сопоставления даты и времени.

Мои проблемы в том, что когда я добавляю оба скрипта на страницу, работает только один, отключая другой. Как я могу получить оба набора кода для вызова при отправке формы?

Мой полный код ii, найденный ниже, спасибо за помощь заранее и праздничные пожелания всем! Райан

<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 Почему, черт возьми, вы публикуете это как комментарий? Это не комментарий к вопросу, это ответ! Это не имеет никакого смысла, поскольку Райан Смит не может отметить это как правильный ответ. Пожалуйста, просветите с объяснением цели! – 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

Смежные вопросы