【发布时间】:2014-04-16 13:40:35
【问题描述】:
我在这样的jsp中有一个div:
<div id="response" class="response"></div>
在对 servlet 进行 ajax 调用后,这个 div 被附加为:
<div id="response" class="response">
<h3>Connected as user : Tony</h3>
<p>You selected the procedure : <B>lg_resultsretrieval</B></p>
<div class="showbiz">
<label>Enter procedure input variables : </label></div>
<div class="actual-input">
<label>Parameter1: </label><textarea name='text1' id='text1' class='txtarea' rows='1' cols='50'>starttime - timestamp without time zone</textarea><br>
<label>Parameter2: </label><textarea name='text2' id='text2' class='txtarea' rows='1' cols='50'>endtime - timestamp without time zone</textarea><br>
<label>Parameter3: </label><textarea name='text3' id='text3' class='txtarea' rows='1' cols='50'>in_sourceindicator - integer</textarea><br>
<label>Parameter4: </label><textarea name='text4' id='text4' class='txtarea' rows='1' cols='50'>keyword - character varying</textarea><br>
</div>
</div>
我为 textarea 写了一个 jquery 函数如下:
//submits only when the textbox value is valid
$("#response").on("change", function() {
$("#Execute").click(function () {
if ($(".txtarea").val() == this.defaultValue)
{
alert("Please insert a valid value");
return false;
}
});
$("txtarea")
.focus(function() {
if (this.value === this.defaultValue) {
console.log('inside focus function');
this.value = '';
}
})
.blur(function() {
if (this.value === '') {
this.value = this.defaultValue;
}
});
});
问题是,上面的代码不起作用,尽管在 jquery 文档中它说要对动态加载的元素使用 on 函数。我如何使它工作?请推荐
【问题讨论】:
-
1) 没有id为
Execute的元素 2) 没有标签为txtarea的元素 -
DIVS 没有更改事件。
-
@epascarello:
change事件似乎从子元素传播到div元素。在这种情况下,textarea元素。也许这是特定于浏览器的行为?值得测试,我想。 -
@Justinas : txtarea 是文本区域的类名,Execute 是我写的jsp代码中按钮的id。
-
@Karthik 类选择器带有点
.txtarea,在您显示的代码中,根本没有按钮。
标签: javascript jquery html ajax jsp