这是一个草案代码:
<form action="test.php" method="post">
<input type="text" id="content">
<input type="button" name="validate_button" id="validate_button" value="Validate" />
<input type="submit" name="submit_button" id="submit_button" value="Send" />
</form>
<script>
$('#submit_button').click(function(e) {
if (!($('#validate_button').click()))
e.preventDefault();
});
$('#validate_button').click(function() {
if ($('#content').val() === '')
return false;
return true;
});
</script>
我想点击submit_button
来运行validate_button
的事件处理程序并决定是否提交表单。显然,我的条件!($('#validate_button').click())
不正确,因为它返回一个jQuery对象。 如何获取事件处理程序本身的返回结果?
P.S。不建议将条件$('#content').val()===''
放在第一个事件处理程序中......
答案 0 :(得分:2)
为什么不在两个点击处理程序中创建一个函数并调用它:
$('#submit_button').click(function(e){
if (!validate())
e.preventDefault();
});
$('#validate_button').click(function(){
return validate();
});
function validate() {
if ($('#content').val()==='')
return false;
return true;
}
答案 1 :(得分:0)
您可以创建一个函数并将其用作#validate_button
点击的处理程序,也可以从#submit_button
点击处理程序调用它。
// Function to validate the value of `#content`
// Return false when value is empty, true o.w.
function validate() {
// Trim the leading and trailing spaces
// Note: Empty string in JS is falsy
return $.trim($('#content').val());
}
$('#submit_button').click(function (e) {
// Other code
return validate();
});
// Pass the function reference to the click()
$('#validate_button').click(validate);
答案 2 :(得分:0)
为什么不使用JavaScript呢?
<input type="text" id="content" required />