JavaScript更新的是页面而不是字段

JavaScript updates a page instead of updating a field

本文关键字:字段 更新 JavaScript      更新时间:2023-09-26

原页面url为http://localhost:8080/appname/help.action此页包含一个表单

<div id="message"></div>
<form id="help_form" name="help_form" onsubmit="return validate_help_form()">
    ...
    <input type="submit" value="Submit" />
</form>

脚本
function validate_help_form() {
    if ( ... ) {
            ...
            return false;
    }
    $.ajax({
        url : 'http://localhost:8080/appname/question',
        type : 'POST',
        dataType : 'html',
        success : function(result) {    
            console.log('^^^^^^^^^');     
            $('#message').text(result);
        },
        error : function(xhr, ajaxOptions, thrownError) {
            alert('Unable to receive result. ' + thrownError);
        },
    });
}

servlet相当简单

logger.info("-----------");
try {
    response.getWriter().append( "a servlet result" );
} catch (IOException e) {
    e.printStackTrace();
}

问题是当ajax请求工作,然后原始页面请求再次路径' http://localhost:8080/appname/help.action。但我想更新一个字段消息与ajax的结果。在控制台中,我得到

^^^^^^^^^
Navigated to http://localhost:8080/my-mates-ajax/help.action?username=...

尝试使用

<form onsubmit="event.preventDefault(); return validate_help_form();">

基本上你需要先阻止表单提交,然后才能执行操作。否则,表单将与ajax请求一起提交。