这是我的代码: HTML部分
<form id="myform" action="whatever.php">
<lable name="text">enter text</label>
<input id="in" type="text" />
<input id="in2" type="text" />
<input type="submit" id="submit" />
</form>
jquery代码:
(function($){
$('#myform').on('click', '#submit', function(e) {
var val = $(this).find('#in').val();
$('ol.list').append('<li class="text-dark"><p>' + val + '.</p></li>');
e.preventDefault();
});
})(jQuery);
输出:
1.undefined。
2.undefined。
3.undefined。
答案 0 :(得分:1)
在回调函数内的代码this
上,指向ID为#submit
的按钮而不是表单本身。
您可以只使用submit
事件,您的代码就能正常工作
(function($){
$('#myform').on('submit', function(e) {
e.preventDefault();
var val = $(this).find('#in').val();
$('ol.list').append('<li class="text-dark"><p>' + val + '.</p></li>');
});
})(jQuery);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
</head>
<body>
<ol class="list"></ol>
<form id="myform" action="whatever.php">
<label name="text">enter text</label>
<input id="in" type="text" />
<input id="in2" type="text" />
<input type="submit" id="submit" />
</form>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
</body>
</html>
答案 1 :(得分:0)
然后ID为in
的元素是form
元素的子元素,而不是submit
按钮。
您需要执行以下操作:转到父表单元素,然后在内部找到该元素,因为输入元素不在“提交”按钮中:
var val = $(this).closest("form").find('#in').val();
$(this).closest("form")
将选择表单,然后find('#in')
将选择ID为in
的元素,然后val()
将获得其值。