目标:提交前的表单验证
程序:当用户单击确定时,表单验证代码运行。如果有任何空input
字段,则返回 false。到目前为止,这一切都有效。
问题:如果返回 false,则下一个确定或关闭按钮无法访问对话框中显示/编辑的输入框的值。警报有效,但是一旦尝试获取input
元素的值,javascript就会死亡。
input
返回 false 后如何访问元素值?
HTML 看起来像这样:
<tr>
<td>Company Name*<br />
<input type="text" id="cn" name="co_name" value="'.$client_data['co_name'].'">
</td>
<td>Company Main Phone*<br />
<input type="text" id="cp" name="co_phone1" value="'.$client_data['co_phone1'].'">
</td>
<td>Company Website*<br />
<input type="text" id="cw" name="co_website" value="'.$client_data['co_website'].'">
</td>
</tr>
Javascript/JQuery 是:
var cn = $('#cn');
var cp = $('#cp');
var cw = $('#cw');
$('#co_label').dialog({
autoOpen: true,
height: 600,
width: 800,
modal: true,
buttons:
{
Test: function() {
alert('Clicked the test button');
return false;
},
Okay: function() {
alert('Okay button clicked');
cn = cn.val();
cp = cp.val();
cw = cw.val();
if (cn=='' || cp=="" || cw=="") {
alert('Fields marked with an asterisk cannot be empty.');
return false;
}else{
//Save form data via ajax
$( this ).dialog( "close" );
} //END ELSE
},
Cancel: function() {
alert('Cancel button clicked');
$( this ).dialog( "close" );
}
},
close: function() {
window.location = 'index.php';
}
})
更新编辑:
多亏了科琳富有洞察力的问题,我对问题有了更好的理解,并相应地更新了问题。似乎正在发生的事情是,当尝试在返回 false 后读取输入元素值时,javascript 会死掉。