我已经实现了一个简单的javascript验证,但验证和表单提交永远不会一起发生......
当我使用“onsubmit”(如下所示)时,它将转到下一页而不进行验证
如果我在表格的末尾使用“onclick”
<input type="button" name="submit" id="send" value="Search Flights" onclick="return validate_booking_form();" />
</form>
它将验证输入..但表格即使输入正确也不会提交
这是我用过的代码 // Javascript验证
function validate_booking_form()
{
chk_fromcity();
chk_tocity();
chk_depature_date();
}
function chk_fromcity()
{
var from_city = $('#from_cities').val();
if (from_city == '')
{
$("#from_cities").removeClass('fieldInput');
$("#from_cities").addClass('error');
$("#errormsg_from").fadeTo(200, 1, function()
{
$(this).html('Please Enter a City').addClass('errormsg');
})
}
else
{
$('#from_cities').removeClass('error');
$('#from_cities').addClass('fieldInput');
$("#errormsg_from").fadeTo(200, 1, function()
{
$(this).html('').removeClass('errormsg');
})
}
}
和表格
<form method="POST" action="../controller/booking.php" name="search_flights_names" onsubmit="return validate_booking_form();" >
/// Form content
<div class="form_input_container">
<div class="form_input">
<input type="text" id="from_cities" name="from_city" class="fieldInput" onblur="return chk_fromcity()" />
</div>
</div>
<input type="submit" name="submit" id="send" value="Search Flights" />
</form>
答案 0 :(得分:0)
提交是正确使用的按钮。
在表单元素中尝试使用putton onsubmit
并在那里进行验证,而不是在click事件上进行验证。这样按Enter键不会绕过所有验证。
答案 1 :(得分:0)
尝试使用Jquery validate。我认为它应该可以解决你的问题
答案 2 :(得分:0)
从chk_fromcity()返回false以停止表单发布到操作。
function chk_fromcity()
{
var from_city = $('#from_cities').val();
if (from_city == '')
{
$("#from_cities").removeClass('fieldInput');
$("#from_cities").addClass('error');
$("#errormsg_from").fadeTo(200, 1, function()
{
$(this).html('Please Enter a City').addClass('errormsg');
});
return false;
}
$('#from_cities').removeClass('error');
$('#from_cities').addClass('fieldInput');
$("#errormsg_from").fadeTo(200, 1, function()
{
$(this).html('').removeClass('errormsg');
})
// return true; // default is true which is why you were passing the validation
}