我有以下代碼:jQuery和處理機構ID的
function mandatoryField(manF)
{
var fieldId = $(manF).val();
if(fieldId == "")
{
return false;
}
else
{
return true;
}
}
它不工作,但這:
function mandatoryField()
{
var fieldId = $("#element_1").val();
if(fieldId == "")
{
return false;
}
else
{
return true;
}
}
推測,在我的第一個例子,mandatoryField被稱爲例如:
mandatoryField("#element_1")
爲什麼不嘗試用變量替換絕對元素ID名稱?
編輯:
最近碼 - 非工作:
function isAmExSelected()
{
return $("#creditCardType").val() == "American Express";
}
function containsOnlyDigits(str)
{
return str.match(/[^0-9]/) == null;
}
function validateCCNumber()
{
var ccn = $("#creditCardNumber").val();
var onlyDigits = containsOnlyDigits(ccn);
if(isAmExSelected())
{
return ccn.length == 15 && onlyDigits;
}
else
{
return ccn.length == 16 && onlyDigits;
}
}
function mandatoryField(manF)
{
var fieldId = $("#" + manF).val();
return fieldId != "";
}
function registerValidation(id, validateMethod(), errorMethod)
{
$(id).change(function(){
if(validateMethod() == false)
{
errorMethod();
}
});
}
$(document).ready(function(){
registerValidation("#creditCardNumber", validateCCNumber, function(){alert("Invalid Credit Card Number!")});
$('input[type=text][class=mandatory]').blur(function(){
if (mandatoryField(this.id)) {
alert('Field:' + this.id + ' is mandatory!')
}
});
});
編輯2
我重寫,看起來像這樣整個事情:
$('input[type=text][class=mandatory]').blur(function(){
if (!($("#" + this.id).val().length)) {
alert('Field:' + this.id + ' is mandatory!');
}
});
如果強制類的文本輸入模糊,則運行該函數:if#foo.val()不具有長度(即,沒有文字),運行警報。我相信它應該起作用,但事實並非如此。
也許你可以爲你的例如http://jsfiddle.net/。 – 2011-02-04 08:11:29
你不需要強制傳遞必填字段名稱 – 2011-02-04 08:59:32
看看我的更新 – 2011-02-04 14:34:22