當我點擊提交,我得到一個錯誤,該值在我的javascript,我用它來驗證我的形式爲aForm.propertyid不確定的。onsubmit =「return checkform(this);」似乎是空的我的形式
我想這是關係到使用選擇,並試圖驗證值的選擇,因爲我不反對前選擇和我的其他形式都做工精細驗證。
正確的值在lease_edita中的$ _POST中,但checkForm(this)似乎沒有將任何事傳遞給javascript進行驗證 - 我的checkForm(aValue)沒有得到aValue。
我在checkForm顯示錯誤檢查增值警報,並且它沒有得到的值。 onchange =「checkProperty(this.value);」儘管工作正常,並確實獲得了價值。
物業ID未定義@/lease_jsLibrary.js
我希望我張貼足夠的代碼...我一直工作在這2天沒有找到一個解決方法,並且很希望尋求建議或想法。
形式:
<form name ="addEditLeaseForm" id="addEditLeaseForm" action="lease_edita.php" method="post" onsubmit="return checkForm(this)">
<?php
$output = <<<HTML
<table class="center1" width="500">
<tr>
<td style="text-align: right; ">
Property:
</td>
<td>
<select name="propertyid" id="propertyid" stle="width:270px;" onchange="checkProperty(this.value);" />
<option value='' selected></option>
HTML;
$propList = getPropertyList(); // get the properties to populate the list box
foreach ($propList as $aProperty) {
extract($aProperty);
$output .= <<<HTML
<option value="$idproperty"
HTML;
if ($idproperty == $prop_id) {
$output .= <<<HTML
selected
HTML;
}
$output .= <<<HTML
>$address</option>
HTML;
}
$output .= <<< HTML
</select>
<font id="propertyErr" style="visibility: hidden; color:red; font-weight: bold;">*Required</font>
</td>
</tr>
HTML;
echo $output;
?>
<tr>
<td colspan ="2" align="center">
<input type="submit" value="<?php echo $buttontext ?>" />
<input type="button" name="Cancel" value="Cancel" onClick="history.go(-1);return true;" />
</td>
</tr>
</table>
</form>
<p style="text-align: center">
<input type="button" name="Property" value="Back to Property" onclick="window.location = '../property/property_main.php' " />
</p>
lease_jsLibrary.js內容:
function trim(strToTrim) {
"use strict";
//create a regular expression literal to identify leading and trailing spaces
var reg = /^\s+|\s+$/g;
//use the string method - replace - to remove leading and trailing spaces
return strToTrim.replace(reg,"");
}
// checks whether an input control is empty (i.e., the user failed to enter a required input)
// note: it uses the trim method (see above) to eliminate white spaces before checking the input
function isEmpty(aControl) {
return (trim(aControl.value).length == 0) ? true : false;
}
// checks for invalid characters in a string
function hasInvalidChars(aControl) {
//create a regular expression literal to identify invalid characters
var reg = /[^a-zA-Z0-9\s\&\!\?\.',_-]/;
//use the regular expression method - test - to check whether the string contains invalid characters
return reg.test(trim(aControl.value));
}
// removes starting and trailing white spaces
function trimBlur(strToTrim) {
"use strict";
//create a regular expression literal to identify leading and trailing spaces
var reg = /^\s+|\s+$/g;
//use the string method - replace - to remove leading and trailing spaces
return strToTrim.replace(reg, "");
}
// checks whether an input control is empty (i.e., the user failed to enter a required input)
// note: it uses the trim method (see above) to eliminate white spaces before checking the input
function isEmptyBlur(aControl) {
"use strict";
return (trimBlur(aControl).length === 0) ? true : false;
}
function checkProperty(aValue) {
"use strict";
alert(aValue);
if (isEmptyBlur(aValue)) {
document.getElementById("propertyErr").style.visibility='visible';
document.getElementById("propertyid").style.borderColor='#FF3300';
document.getElementById("propertyErr").innerHTML="*Required";
return false;
} else {
document.getElementById("propertyErr").style.visibility='hidden';
document.getElementById("propertyid").style.borderColor='';
return true;
}
}
function checkForm(aValue) {
alert (aValue.propertyid);
if (isEmpty(aValue.propertyid)) {
document.getElementById("propertyErr").style.visibility='visible';
document.getElementById("propertyid").style.borderColor='#FF3300';
document.getElementById("propertyErr").innerHTML="*Required";
return false;
} else return true;
}
在此先感謝的提示,建議和想法..
這是通過改變使用固定: 如果(的isEmpty(aValue.propertyid.value)) 謝謝!
你應該檢查'aValue.propertyid'而不是'aForm.propertyid'嗎? 'aValue'似乎沒有被定義在任何地方。 – animuson 2012-04-19 04:45:17
挑剔:'font'標籤已被棄用,不使用它們,這不是20世紀90年代。使用CSS類的跨度。連續多次查看'document.getElementById(「propertyErr」)是很糟糕的。將其存儲到一個變量中並使用它。 'var elem = document.getElementById(「propertyErr」); elem.style.visibility ='visible';' – epascarello 2012-04-19 04:45:28
啊,我看到了..我改變了這一點,以便它們在checkForm(aValue) – Rahhstah 2012-04-19 05:10:05