Javascript “为什么?”;e、 preventDefault();及;返回false";禁用post?

Javascript “为什么?”;e、 preventDefault();及;返回false";禁用post?,javascript,asp.net-mvc,post,Javascript,Asp.net Mvc,Post,我今天遇到了一个问题。我已经解决了。我用启发式的方法解决了这个问题,但我希望得到科学的解释(我们不应该是程序员,也不应该是科学的人:) 以下是我的MVC项目的初始视图代码: //shortened for brevity @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <div class="editor-label">

我今天遇到了一个问题。我已经解决了。我用启发式的方法解决了这个问题,但我希望得到科学的解释(我们不应该是程序员,也不应该是科学的人:)

以下是我的MVC项目的初始视图代码:

    //shortened for brevity

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)

    <fieldset>

        <div class="editor-label">
            @Html.LabelFor(model => model.UserName)

        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.UserName, new { onkeyup = "InputToLower(this);" })
            @Html.ValidationMessageFor(model => model.UserName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.UserPassword)
        </div>
        <div class="editor-field">
            <input type="password" name="password1" id="password1" />
        </div>
        <div class="editor-label">
            <label for="male">Lütfen şifrenizi tekrar giriniz: </label>
        </div>
        <div class="editor-field">
            <input type="password" name="password2" id="password2" />
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.UserEmail)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.UserEmail)
            @Html.ValidationMessageFor(model => model.UserEmail)
        </div>

        <p>                
                <input type="submit" id="registerButton" value="Kayıt Ol" />            
        </p>

    </fieldset>
     }

  <script type="text/javascript">


    $(function () {
        $("#registerButton").click(function (e) {
           // e.preventDefault();
            var errorSummary = $('.validation-summary-errors');
            if (errorSummary.length == 0) {
                $('#listError').remove();
                $('<div class="validation-summary-errors"></div>').insertAfter($('.validation-summary-valid'));
                $(".validation-summary-errors").append("<ul id='listError'><li>0 karakter giremezsiniz. OSI-122 </li></ul>");
            }
            else if (errorSummary.length == 1) {
                $('#listError').remove();
                $(".validation-summary-errors").append("<ul id='listError'><li>You cannot enter more than 20 characters.</li></ul>");
            }
            //return false;
        });

    });

</script>
//为了简洁而缩短
@使用(Html.BeginForm())
{
@Html.ValidationSummary(true)
@LabelFor(model=>model.UserName)
@Html.TextBoxFor(model=>model.UserName,new{onkeyup=“InputToLower(this);”})
@Html.ValidationMessageFor(model=>model.UserName)
@LabelFor(model=>model.UserPassword)
吕特芬·伊夫雷尼齐·特克拉尔·吉日化:
@LabelFor(model=>model.UserEmail)
@EditorFor(model=>model.UserEmail)
@Html.ValidationMessageFor(model=>model.UserEmail)

} $(函数(){ $(“#注册表按钮”)。单击(函数(e){ //e.预防违约(); var errorSummary=$('.validation summary errors'); 如果(errorSummary.length==0){ $('#listError')。删除(); $('').insertAfter($('.validation summary valid'); $(“.validation summary errors”).append(“
  • 0 karakter giremeznizing.OSI-122
”); } else if(errorSummary.length==1){ $('#listError')。删除(); $(“.validation summary errors”)。追加(“
  • 您不能输入超过20个字符。
”; } //返回false; }); });

代码为简洁而缩短。当我禁用e.preventDefault()并返回false时,过帐已经完成。e.preventDefault()和return false如何以及为什么阻止发布?你推荐任何提到这类问题的书吗?提前谢谢

registerButton是submit按钮,submit的行为是将表单的数据发布到表单标记中提到的操作。若你们并没有在表单标签中提到任何动作属性,那个么它将点击相同的get动作的post动作


event.preventDefault()和return false停止发回或进一步事件。

registerButton是submit按钮,submit的行为是将表单的数据发布到表单标记中提到的操作。若你们并没有在表单标签中提到任何动作属性,那个么它将点击相同的get动作的post动作


event.preventDefault()和return false会阻止您发回或进一步发布事件。

而且它们不是问题,它的行为会阻止发布。感谢您的回答,Satpal先生。似乎在互联网上搜索是显而易见的方式。对于JS访问,他们不是问题,这是阻止发布的行为。谢谢你的回答Satpal先生。在互联网上搜索似乎是最明显的方式