我有以下代码: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