0

我制作了一个注册表单,如果您保留姓名或姓氏输入,它会在输入旁边显示一个错误闪烁并走开。按钮类型是提交我正在写下代码

function SignUp() {
var firstname = $("#firstname").val();
var lastname = $("#lastname").text();
var date = $("#dd option:selected").text();
var month = $("#mm option:selected").text();
var yy = $("#yy option:selected").text();
var sex = $("input:radio[name=sex]:checked").val();
     if ($.trim($("#firstname").val()) == "") {
    document.getElementById("firstnameerror").innerHTML = "Please write firstname";



    if ($.trim($("#lastname").val()) == "") {
    document.getElementById("lastnameerror").innerHTML = "Please write lastname";



    if (!$("input[name='sex']:checked").val()){
    document.getElementById("gendererror").innerHTML = "Please select your gender";

       }

    }
      }
 }
4

2 回答 2

1

您的问题是您不会阻止正在提交的表单的默认行为。试试这个(简化代码):

function SignUp(e) {
    var firstname = $("#firstname").val();
    var lastname = $("#lastname").text();

    if ($.trim($("#firstname").val()) == "") {
        $("#firstnameerror").text("Please write firstname");
        e.preventDefault(); // <!-- prevent form submit in case of errors
    }
    else {
        $("#firstnameerror").text('');
    }

    if ($.trim($("#lastname").val()) == "") {
        $("#lastnameerror").text("Please write lastname");
        e.preventDefault();
    }
    else {
        $("#lastnameerror").text("");
    }
}

$('#form').submit(SignUp)

http://jsfiddle.net/fh6Ar/

也不要将点击事件绑定到提交按钮。表单对此有特殊事件submit event

于 2013-10-27T15:58:33.830 回答
0

SignUp()当您在单击提交按钮时调用函数时,您必须return false不提交表单。

使用 jquery,您可以轻松做到:

$('#submitButtonId').click(function(){

 SignUp();
 return false;

})

如果在 javascript 验证后一切顺利,您可以执行以下操作:

$(#myFormId).submit();

或者只是简单的:

<input type="submit" name="send" value="SEND" onclick="SignUp(); return false;" />
于 2013-10-27T15:51:24.627 回答