我有循环生成的表单,因此元素的名称将是相同的。这就是我想使用$(this)来访问它们并进行比较的原因。但到目前为止不成功,任何想法我怎么能。 仅供参考我是Jquery的新手,任何帮助表示赞赏:)
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$("form").submit(function() {
if ($(this).children("#textbx").val() < $(this).children("#comparetobox").val() ) {
$("span").text("Validated...").show();
return true;
}
$("span").text("Not valid!").show().fadeOut(1000);
return false;
});
</script>
<form id='userbid' name='userbid' method=post>
<input type="text" name="textbx" id="textbx">
<input type="text" name="comparetobox" id="comparetobox">
<span></span>
<input type="submit" value="save" name="submit">
</form>
<!-- Form is in loop so can be generated N no of times -->
<form id='userbid' name='userbid' method=post>
<input type="text" name="textbx" id="textbx">
<input type="text" name="comparetobox" id="comparetobox">
<span></span>
<input type="submit" value="save" name="submit">
</form>
答案 0 :(得分:0)
我不知道你如何比较input
框的值,但这是有效的JavaScript代码:
$("form").submit(function() {
if ($(this).children(".textbx").val() < $(this).children(".comparetobox").val()) {
$(this).children("span").text("Validated...").show();
return true;
}
$(this).children("span").text("Not valid!").show().fadeOut(1000);
return false;
});
注意元素的ID应该是唯一的。请改用类(例如.textbx
)。
答案 1 :(得分:0)
在第二个输入中,你有'是'而不是'id',这可能是你的问题。