我是一个关于HTML的菜鸟。我通过this,this,this,this等进行了筛选。这是我想出的代码,但是,我做过的更多实验,都行不通。我可以整天打击输入字段,但我从未看到警报。大多数答案都假设你知道我认为我不知道的事情。谁能告诉我可能出错的地方?
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js">
</script>
<script>
$("#myform :input").change(function() {
alert("Form changed");
});
</script>
<form id="myform" name="myform" method="GET">
<!-- a bunch of text fields, etc -->
</form>
答案 0 :(得分:2)
<form id="myform" name="myform" method="GET">
<input type="text" name="field">
<input type="text" name="field2">
<input type="text" name="field3">
</form>
<script>
$("#myform input").change(function() {
alert("Form changed");
});
</script>
试试这个。确保您的脚本位于表单下方,或者在脚本运行时不会加载表单。或者你可以将你的javascript包装在$(document).ready()
中。这将在加载DOM后执行您的代码。 https://api.jquery.com/ready/
$(document).ready(function() {
// Your Javascript
}
此外,如果您要查找每个按键上的警报,请查看keyup()
或keydown()
,而不是在jQuery中使用change()
:https://api.jquery.com/keyup/ < / p>
答案 1 :(得分:0)
这非常清楚地解释了这一点。 Generic way to detect if html form is edited
您可以向表单添加数据属性:data-changed="false"
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js">
</script>
<script>
$("#myform :input").change(function() {
//here we make sure that the on change event for every form input element
//triggers the flag on the form (data-changed) to true.
$("#myform").data("changed",true);
});
//when the form is being submitted:
$(document).on('submit',"#myform",function(){
if ($("#myform").data("changed")) {
{
//something has changed: do something
}
})
</script>
<form id="myform" name="myform" method="GET" data-changed="false">
<!-- a bunch of text fields, etc -->
</form>