@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>ChapterTwoFormEvent</title>
<link href="~/Content/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" />
<style>
.content {
width:220px;
height:100px;
border:1px solid #ccc;
margin:20px auto;
padding:20px;
}
.changeColor {
background:#b5a0d7;
}
.setBorder {
border:3px solid #453979;
}
</style>
</head>
<body>
<div id="demo" class="content">
<input type="text" name="" id="txtdemo"/>
</div>
<script src="~/Content/bootstrap-3.3.7-dist/js/jquery-3.2.1.min.js"></script>
<script>
//2-1 jQuery鼠标事件之focusin事件 与 focusout事件
//jQuery表单事件之focus与blur事件
//focusin事件跟focus事件区别在于,他可以在父元素上检测子元素获取焦点的情况。
//focusout事件跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况
//注意查看 下面事件所选取的元素 思考focusin与focus的区别
//分别取消注释查看focusin与focus的区别
$("#demo").focusin(function () {
$(this).addClass("changeColor");
});
$("#demo").focusout(function () {
$(this).removeClass("changeColor");
});
//演示下面的focus的效果时,请注释上面的内容
//$("#txtdemo").focus(function () {
// $(this).addClass("setBorder");
//});
//$("#txtdemo").blur(function () {
// $(this).removeClass("setBorder");
//});
</script>
<div class="container">
<form class="form-horizontal" action="/jQueryEvent/ChapterTwoMouseEvent">
<!--onsubmit="return false;" 禁止表单自动提交-->
<div class="form-group">
<label class="control-label col-md-3">input:</label>
<div class="col-md-4">
<input type="text" class="form-control" id="target1" />
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3">select:</label>
<div class="col-md-4">
<select class="form-control" id="target2">
<option>option1</option>
<option>option2</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3">textarea:</label>
<div class="col-md-4">
<textarea class="form-control" id="target3"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-md-4 col-md-offset-4" style="font-size:20px;" id="result"></div>
</div>
<div class="form-group">
<button class="btn btn-primary col-md-offset-4" id="btnSubmit">表单提交</button>
</div>
</form>
</div>
<script>
//2-2 jQuery表单事件之change事件
//<input>元素,<textarea>和<select>元素的值都是可以发生改变的,开发者可以通过change事件去监听这些改变的动作
/*
input元素
监听value值的变化,当有改变时,失去焦点后触发change事件。对于单选按钮和复选框,当用户用鼠标做出选择时,该事件立即触发。
select元素
对于下拉选择框,当用户用鼠标作出选择时,该事件立即触发
textarea元素
多行文本输入框,当有改变时,失去焦点后触发change事件
*/
//input标签的change事件
$("#target1").change(function (e) {
console.log(e);
$("#result").html(e.target.value);
});
//select标签的change事件
$("#target2").change(function (e) {
console.log(e);
$("#result").html(e.target.value);
});
//textarea标签的change事件
$("#target3").change(function (e) {
console.log(e);
$("#result").html(e.target.value);
});
//2-3 jQuery表单事件之select事件
/*当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件。
这个函数会调用执行绑定到select事件的所有函数,包括浏览器的默认行为。可以通过在某个绑定的函数中返回false来防止触发浏览器的默认行为。
select事件只能用于<input>元素与<textarea>元素*/
//input 元素中的文本被选择时触发
$("input").select(function () {
alert("input标签的文本被选中事件");
});
//textarea元素中的文本被选择时触发
$("textarea").select(function () {
alert("textarea标签的文本被选中事件");
});
//2-4 jQuery表单事件之submit事件
/*提交表单是一个最常见的业务需求,比如用户注册,一些信息的输入都是需要表单的提交。同样的有时候开发者需要在表单提交的时候过滤一些的数据、做一些必要的操作(例如:验证表单输入的正确性,如果错误就阻止提交,从新输入)此时可以通过submit事件,监听下提交表单的这个动作
使用上非常简单,与基本事件参数处理保持一致
这里需要特别注意:
form元素是有默认提交表单的行为,如果通过submit处理的话,需要禁止浏览器的这个默认行为
<form onsubmit="return false;"></form>, jQuery中可以直接在函数中最后结尾return false即可
*/
//如果你要阻止表单提交:
/*jQuery 代码:
$("form").submit( function () {
return false;
} );
*/
//禁止浏览器的默认提交行为
//$("#btnSubmit").submit(function () {
// return false;
//});
</script>
</body>
</html>