在查看大多数网站(包括SO)时,大多数网站使用:
<input type="button" />
Run Code Online (Sandbox Code Playgroud)
代替:
<button></button>
Run Code Online (Sandbox Code Playgroud)
<button>兼容性问题,看到它没有被广泛使用?input type="submit"和button标签是可以互换的吗?或者如果有任何差异那么何时使用input type="submit"何时button?
如果没有区别那么为什么我们有2个标签用于相同的目的?
有很多关于他们的传说.我想知道真相.以下两个例子之间有什么区别?
<input type='submit' value='text' />
<button type='submit'>text</button>
这是我在twitter bootstrap中的模态的代码:
<div class="modal-body">
<form class="form-horizontal" method="POST" name="loginForm" id="loginForm">
<div class="control-group">
<label class="control-label" for="inputEmail">Email</label>
<div class="controls">
<div class="input-prepend">
<span class="add-on"><i class="icon-envelope"></i></span>
<input class="span2" id="inputIcon" type="text" name="email"/>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPassword">Password</label>
<div class="controls">
<div class="input-prepend">
<span class="add-on"><i class="icon-lock"></i></span>
<input class="span2" id="password" type="password" name="password"/>
</div>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox"> Remember me
</label>
</form>
<button type="submit" class="btn" id="signin_button">Sign in</button>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
每当我按下登录按钮时,它都会重新加载页面.如何在单击按钮时禁用刷新页面?
a button与type="button"vs 之间有区别type="submit"吗?是否存在功能差异,或者它只是一个描述性名称,以便更轻松地阅读代码?
这有input什么不同吗?
我的Razor视图中有以下内容:
@using (Html.BeginForm("Edit", "MyController", FormMethod.Post))
{
<div class="grid_1"> </div>
<div id="ValSummary"> @Html.ValidationSummary(false)</div>
@Html.EditorFor(x => x.Role, MVC.Shared.Views.EditorTemplates.KeyValuePairSelectList, new { SelectListOptions = Model.RoleSelectList })<br /><br />
@Html.EditorFor(x => x.Trust, MVC.Shared.Views.EditorTemplates.KeyValuePairSelectList, new { SelectListOptions = Model.TrustSelectList.OrderBy(x => x.Text) })<br /><br />
@Html.EditorFor(x => x.GmcCode)<br /><br />
<div class="createbutton">
<input id="btnGoBack" type="button" value="Back"/>
<input id="btnSubmit" type="button" value="Submit" />
</div>
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我有
[HttpGet]
public virtual ActionResult Edit(string id)
{
}
[HttpPost]
public virtual ActionResult Edit(ViewModel viewModel)
{
}
Run Code Online (Sandbox Code Playgroud)
在Firefox和Chrome中,一切正常,但在IE中提交表单时,HttpGet操作被触发而不是HttpPost.
调用堆栈或IE开发人员工具控制台中没有线索.
我遗失的任何明显的东西?
假设这个简单的HTML表单:
<form id="settings-form">
<label>
Input data:
<input name="data"/>
</label>
<button id="submit-btn">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
我想使用jQuery和AJAX提交此表单,因此页面不会刷新.您至少可以通过以下两种方式执行此操作:
1.将事件处理程序附加到表单的实际提交:
$("#settings-form").submit(function(event){
event.preventDefault();
var data = $(this).serialize();
//Ajax code here
});
Run Code Online (Sandbox Code Playgroud)
在这里,我添加type='submit'按钮submit-btn.
2. 将事件处理程序附加到按钮:
$("#submit-btn").click(function(){
var data = $("#settings-form").serialize(); // or this.closest("form").serialize()
//Ajax code here
});
Run Code Online (Sandbox Code Playgroud)
在这里,submit-btn得到type='button'
我的问题是:哪个选项更好,为什么?这不是关于在这种情况下哪个type属性值更好button,而是为什么事件处理程序1优于2,反之亦然.
Django接受并使用格式的表单按钮:
<input type="submit" value="Submit" />
Run Code Online (Sandbox Code Playgroud)
如何使其与以下工作:
<button type="button">Submit</button>
Run Code Online (Sandbox Code Playgroud) html ×4
ajax ×2
button ×2
html-input ×2
jquery ×2
c# ×1
codeigniter ×1
django ×1
forms ×1
htmlbutton ×1
razor ×1
w3c ×1