Jquery下代码为何不能执行
在jquery1.9.1下,$(".edit-forminput[type=submit]")返回值是个[],貌似是造成下面代码不能执行的原因。$(".edit-form...
在jquery 1.9.1 下,$(".edit-form input[type=submit]")返回值是个[],貌似是造成下面代码不能执行的原因。
$(".edit-form input[type=submit]").on("click", function(event){
event.preventDefault();
//输出一条日志证明脚本确实运行了
console.log("FORM SUBGD D ");
});
而类似于$(".edit-form a:contains(cancel)") 也不能执行。甚至于$("edit-form")都找不到
edit-form是个FORM的CSS。form格式如下:
<div class="modal-window" style="display: block;">
<form action="assets/inc/process.inc.php" method="post" class="edit-form" style="">
<fieldset>
<legend>Create a New Event</legend>
<label for="event_title">Event Title</label>
<input type="text" name="event_title" id="event_title"/>
<label for="event_start">Start Time</label>
<input type="text" name="event_start" id="event_start"/>
<label for="event_end">End Time</label>
<input type="text" name="event_end" id="event_end"/>
<label for="event_description">Event Description</label>
<textarea name="event_description" id="event_description"/>
<input type="hidden" name="event_id"/>
<input type="hidden" name="token" value="07183ecbf30a4916ca2009a9ea2c867b2c78ebcf"/>
<input type="hidden" name="action" value="event_edit"/>
<input type="submit" name="event_submit" value="Create a New Event"/>
or
<a href="./">cancel</a>
</fieldset>
</form>
</div> 展开
$(".edit-form input[type=submit]").on("click", function(event){
event.preventDefault();
//输出一条日志证明脚本确实运行了
console.log("FORM SUBGD D ");
});
而类似于$(".edit-form a:contains(cancel)") 也不能执行。甚至于$("edit-form")都找不到
edit-form是个FORM的CSS。form格式如下:
<div class="modal-window" style="display: block;">
<form action="assets/inc/process.inc.php" method="post" class="edit-form" style="">
<fieldset>
<legend>Create a New Event</legend>
<label for="event_title">Event Title</label>
<input type="text" name="event_title" id="event_title"/>
<label for="event_start">Start Time</label>
<input type="text" name="event_start" id="event_start"/>
<label for="event_end">End Time</label>
<input type="text" name="event_end" id="event_end"/>
<label for="event_description">Event Description</label>
<textarea name="event_description" id="event_description"/>
<input type="hidden" name="event_id"/>
<input type="hidden" name="token" value="07183ecbf30a4916ca2009a9ea2c867b2c78ebcf"/>
<input type="hidden" name="action" value="event_edit"/>
<input type="submit" name="event_submit" value="Create a New Event"/>
or
<a href="./">cancel</a>
</fieldset>
</form>
</div> 展开
2个回答
展开全部
应该是你的js代码写在body前面了。
网页加载内容是从上到下的,在这个标签还没有创建的时候你就调用了那段代码,所以没有找到指定的dom元素。
只要把代码放在body尾部就可以了
或者: $(function(){
//代码放在这里面
});
这种格式会确保内部的代码在所有dom加载完成的时候才开始执行。
网页加载内容是从上到下的,在这个标签还没有创建的时候你就调用了那段代码,所以没有找到指定的dom元素。
只要把代码放在body尾部就可以了
或者: $(function(){
//代码放在这里面
});
这种格式会确保内部的代码在所有dom加载完成的时候才开始执行。
追问
分数我给了二楼回答比较充分的,但是答案不对,我自己解决了,供参考。submit 这个元素是动态生成的,在1.4版本,live可获取动态元素,但1.9取消了live,on只能获取静态元素,所以从body上从头获取解决问题。
$("body").on("click",".edit-form a:contains(cancel)", function(event){
fx.boxout(event);
})
展开全部
<textarea name="event_description" id="event_description"/>
jquery代码没有问题,有问题的是上面的 html 代码,这个不能这么写,必须写成
<textarea name="event_description" id="event_description"></textarea>
更多追问追答
追问
和这个有关系吗?前面我很多代码都是写成这样的,也没出现什么问题。
---
测试了,和这个毫无关系。
追答
我测试了,完全是这个标签引起的问题,你用谷歌浏览器看一下,写成这种形式的,后面的 html 代码完全不可见
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询