为什么“;e.preventDefault()"以及“;return false”;禁用帖子
Why does "e.preventDefault()" and "return false" disable the post?
我今天遇到了一个问题。我已经解决了。我启发式地解决了它,但我想要科学的解释(我们不应该是程序员,也应该是科学的人:)
以下是我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>
为了简洁,代码被缩短了。当我禁用e.preventDefault()并且返回false时,发布已经完成。e.preventDefault()和return false如何以及为什么阻止发布?你推荐任何一本提到这类问题的书吗?提前谢谢。
registerButton是提交按钮,提交的行为是将表单的数据发布到表单标记中提到的操作。若你们并没有在表单标签中提到任何动作属性,那个么它将点击相同的get动作的post-action。
event.prventDefault()并返回false将停止您的帖子返回或进一步的事件。
相关文章:
- 为什么javascript在'return false'
- return false不阻止点击
- return false不停止表单提交
- 表单提交没有'调用return false后无法工作
- svgpanzoom:beforeZoom on return false dos'不要停下
- 为什么event.prventDefault()和'return false'停止我的AJAX表单提交操
- 我可以在onclick=return false的链接上触发点击事件吗
- return false dos't禁止提交表格
- JavaScript onkeydown, return true,false
- 提交之间的差异=“;return false”;并且onsubmit=“;javascript:return false
- 为什么preventDefault不起作用,而return false起作用
- javascript doesn't return false
- JavaScript: onclick and return false
- Ajax success: {return false;}
- 函数() { return false; } 的操作细节().
- 只写一次“return false”来处理点击许多链接
- onsubmit=“return false”是什么意思?(JavaScript,jQuery)
- 还有没有'return false'Javascript短路
- Return false不适用于AJAX
- Return false对第二个onclick切换事件无效