我写过一个使用jquery的html页面,但javascript执行在以下几点停止:
alert($('[name=fAantalVakjes]').val());
这是相关的html标签:
<input type="hidden" value="1" id="fAantalVakjes" name="fAantalVakjes" />
有人能帮帮我吗?
提前致谢,
伊凡 编辑:完整代码:
function ValidateOnderzoeksRechter() {
var or1, or2, or3, totaalOR;
var blnReturn = true;
or1 = $('#fOnderzoeksrechter_1').attr('value');
or2 = $('#fOnderzoeksrechter_2').attr('value');
or3 = $('#fOnderzoeksrechter_3').attr('value');
if ((or1.length == 2)) {
// ok
setColor('fOnderzoeksrechter_1',true);
} else {
// NOT OK
setColor('fOnderzoeksrechter_1',false);
blnReturn = false;
}
if ((or2.length <= 7) && (or2.length >= 1)) {
// ok
setColor('fOnderzoeksrechter_2',true);
} else {
// NOT OK
setColor('fOnderzoeksrechter_2',false);
blnReturn = false;
}
if ((or3.length == 2)) {
// ok
setColor('fOnderzoeksrechter_3',true);
} else {
// NOT OK
setColor('fOnderzoeksrechter_3',false);
blnReturn = false;
}
$('#fOnderzoeksrechter_1').val((or1.toUpperCase()));
$('#fOnderzoeksrechter_2').val((or2.toUpperCase()));
$('#fOnderzoeksrechter_3').val((or3.toUpperCase()));
if (blnReturn) {
//$('#message').html('Gelieve de rode vakjes te corrigeren.');
}
return blnReturn;
}
function ValidateParketNr() {
var parket1, parket2, parket3, parket4, parket5, totaalParket;
parket1 = $('#fParket1').attr('value');
parket2 = $('#fParket2').attr('value');
parket3 = $('#fParket3').attr('value');
parket4 = $('#fParket4').attr('value');
parket5 = $('#fParket5').attr('value');
var blnReturn;
blnReturn = true;
if ((parket1.length == 2)) {
// ok
setColor('fParket1',true);
} else {
// NOT OK
setColor('fParket1',false);
blnReturn = false;
}
if ((parket2.length == 2)) {
// ok
setColor('fParket2',true);
} else {
// NOT OK
setColor('fParket2',false);
blnReturn = false;
}
if ((parket3.length == 2)) {
// ok
setColor('fParket3',true);
} else {
// NOT OK
setColor('fParket3',false);
blnReturn = false;
}
if (IsNumeric(parket4) && (parket4.length) <= 7 && (parket4.length) >= 1) {
// ok
setColor('fParket4',true);
} else {
// NOT OK
setColor('fParket4',false);
blnReturn = false;
}
if (IsNumeric(parket5) && (parket5.length) == 2) {
// ok
setColor('fParket5',true);
} else {
// NOT OK
setColor('fParket5',false);
blnReturn = false;
}
$('#fParket1').val((parket1.toUpperCase()));
$('#fParket2').val((parket2.toUpperCase()));
$('#fParket3').val((parket3.toUpperCase()));
if (blnReturn) {
//$('#message').html('Gelieve de rode vakjes te corrigeren.');
}
return blnReturn;
}
function IsNumeric(sText)
{
if (sText != null) {
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}
return IsNumber;
} else {
return false;
}
}
function setColor(naam ,blnOK) {
if(blnOK) {
$('#' + naam).css('background-color', '#00ff00');
} else {
$('#' + naam).css('background-color', '#ff0000');
}
}
function ValidateForm() {
var blnResult;
blnResult = true;
if(!orIsLeeg()) {
blnResult = ValidateOnderzoeksRechter();
}
if (!ParketIsLeeg()) {
blnResult = ValidateParketNr();
}
blnResult = ValideerRestVanFormulier();
return blnResult;
}
function XOR(b1, b2) {
return (!b1 && b2) || (b1 && !b2);
}
function orIsLeeg() {
var ISLEEG;
ISLEEG = true;
for (var x = 0; x < 3; x++){
if ($('#fOnderzoeksrechter_' + (x + 1)).val != '') {
ISLEEG = false;
}
}
return ISLEEG;
}
function ParketIsLeeg() {
var ISLEEG;
ISLEEG = true;
for (var x = 0; x < 5; x++){
if ($('#fParket' + (x + 1)).val != '') {
ISLEEG = false;
}
}
return ISLEEG;
}
function ValideerRestVanFormulier() {
var ret, value;
ret = true;
ret = ValideerCijfer('fAantalMaatregelen');
ret = ValideerCijfer('fAantalOnderzoeken');
ret = ValideerCijfer('fAantalBetrokkenVerdachten');
ret = ValideerCijfer('fAantalNuttig');
for (var x = 0; x < AANTAL_VAKJES ; x++){
ret = ValideerCijfer('fFeitAantal' + x);
}
return ret;
}
function ValideerCijfer(veld) {
try {
if (IsNumeric($("#" + veld).val()) && ($("#" + veld).val() != '')) {
setColor(veld, true);
return true;
} else {
setColor(veld, false);
return false;
}
} catch (ex) {
alert(ex);
}
}
从该元素调用该函数:
<input type="text" onchange="ValideerRestVanFormulier()" value="" name="fFeitAantal0" />
以下代码输出'sText undefined':
function ValideerCijfer(veld) {
try {
if (IsNumeric($("#" + veld).val()) && ($("#" + veld).val() != '')) {
setColor(veld, true);
return true;
} else {
setColor(veld, false);
return false;
}
} catch (ex) {
alert(ex);
}
}
请参阅上面的isNumeric函数...
以下是功能名称的简短说明(它们是荷兰语) ValideerCijfer = validateNumber - &gt;用于检查它是否为有效数字的函数。
答案 0 :(得分:0)
您不能使用Id选择器吗?
$('#fAantalVakjes').val()
或使用名称:
$('[name="fAantalVakjes"]').val()
..弗雷德里克
答案 1 :(得分:0)
正如Karim在评论中指出的那样,问题可能是您的代码在DOM完全加载之前执行。通常,大多数jQuery代码都放在$(document).ready()
回调中,确保DOM在执行时可用。例如:
$(document).ready(function() {
alert($('[name=fAantalVakjes]').val());
});
正如Fredrik在回答中提到的那样,您可能需要考虑使用id
元素的<input>
属性,因为它提供了更简单(通常更可靠)的选择:
$(document).ready(function() {
alert($('#fAantalVakjes').val());
});
答案 2 :(得分:0)
这可能很明显,但你的输入标签在HTML </input>
尝试更改
value = $('[name="fAantalVakjes"]').val();
是
value = $('input[name="fAantalVakjes"]').val();
编辑:OH,并且DO使用ID来代替速度,我没有包含它,因为我不知道你的其他情况。
EDIT2:只是另外一个想法,我真的不喜欢“价值”这个名字。我会把它改成其他类似的东西:
myvalue = $('input[name="fAantalVakjes"]').val();
alert(myvalue);
答案 3 :(得分:0)
自己发现问题:我忘了为fAantalVakjes字段指定ID ...
感谢您的帮助!
伊凡