1.form 中type 为submit 和button的区别
submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。
如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button,即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。或者在使用submit时验证时加return true或false。
submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上,submit会提交表单,button不会提交表单.
两者主要区别在于:
submit默认为form提交,可以提交表单(form).
button则响应用户自定义的事件,如果不指定onclick等事件处理函数,它是不做任何事情.当然,button也可以完成表单提交的工作.
INPUT type=submit 即发送表单,按回车提交表单
INPUT type=button 就是单纯的按钮功能,提交的是innerTEXT
2.本人所做的一个小实例
<form id="search-form" >
<input type="text" name="keyword" placeholder="搜索明星名称"/>
<input type="hidden" name="category" value="明星"/>
<button type="button" onclick="changeKeyword(this);">搜索</button>
</form>
在按下这个按钮的时候并不想它直接提交,而是去执行一个函数。就可以这样写,把type改成button就会去执行函数.
这时候又遇到了另外一个问题,我想得到keyword里面输入的关键字该怎么办,解决方法。
function changeKeyword(elem){
var $form = $(elem).parents("form");
console.log($form.serialize());
}
这个就会把整个form里面的值都打印出来。
如果要得到单个的值,也可以这样
function changeKeyword(elem){
var val = $("input[name=keyword]").val();
console.log(val);
}
这样就可以得到keyword的值