我正在使用jquery并且我想要获取的动作是当一个人点击一个按钮时我将它向下滑动它下面的隐藏div并显示隐藏的div。在该div内部有一个带有提交按钮的表单字段。如何监听某人点击该div内的提交按钮的事件?我似乎无法让它发挥作用:
更新:这似乎有效,请告诉我这是否正确:
$('.button.green.table').live('click',function() {
var dataString = $(this).attr('title');
$("#formdiv" + dataString).slideToggle("fast", function() {
//Added, this works
$(this).find('.button').click(function() {
alert($('input[name$="notes"]').val());
return false;
});
return false;
});
});
编辑某些HTML:
<button class="button green table" title="1">Add Notes</button>
<div id="formdiv1">Notes<br /><input type="text" name="notes" value="12" />
<button class="button" id="buttontest">GO</button></div>
答案 0 :(得分:1)
我首先从窗体slideToggle事件中取出按钮click事件,因为它不属于那里。
另外,一旦页面呈现,你确定id是正确的吗?我总是使用类选择器而不是Id,因为在asp.net中id可以改变。你没有指明你在使用什么
修改强>
$("#formdiv" + dataString + " .button").click(function(){
//your code here
});
或
$("#formdiv" + dataString + " .button").live("click",function(){
//your code here
});
答案 1 :(得分:0)
尝试这样的事情:
使用选择器
$(':input[name=notes]', $('#formdiv' + dataString)).val()
我建议不要按照你这样做的方式去做。我实际上会使用类可能在父级上有一些选择。这种方式更通用,你可以拥有任意多个,而无需选择id。更简单的代码。
所以你可以这样做:
注意委托就像现场一样,但更好。