jQuery Uncaught TypeError:submit不是函数

时间:2018-02-27 11:20:22

标签: jquery html form-submit

我无法找到解决此问题的方法。

我在同一页面上有多个动态生成的表单,具有不同的id和data-form-id属性(#form-1,#form-2等),但页面顶部只有一个提交按钮。在输入时,我将相应的data-form-id值分配给提交按钮,当我单击提交按钮时,它应该提交具有相应ID的表单。

所有似乎都按计划工作,但最后我在控制台中收到错误说: 未捕获的TypeError:formToSubmit.submit不是函数。 连接是问题吗? 非常感谢所有帮助!



$('.inputs').on("input", function(){
	// get the data-form-id from this textarea
	var this_id = $(this).attr('data-form-id');
	// set the submit button's data-form-id attribute with the textarea's id
	$('#submitBtn').attr('data-form-id', this_id);
});
	
$('#submitBtn').click(function(){
	var formTo = $(this).attr('data-form-id');
	formTo = "$('#" + formTo + "')";
	console.log(formTo);
	formTo.submit();
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="submitBtn" data-form-id="" type="button" value="send">

	<form id="form-1" action="" method="post">
		<textarea name="info" cols="30" rows="10" data-form-id="form-1" class="inputs"></textarea>
	</form>
	
	<form id="form-2" action="" method="post">
		<textarea name="info" cols="30" rows="10" data-form-id="form-2" class="inputs"></textarea>
	</form>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

删除formTo = "$('#" + formTo + "')";中{“1}}行上的”“,因为您构建了一个String对象而不是Jquery,因此您尝试提交字符串并抛出错误

答案 1 :(得分:1)

$('.inputs').on("input", function(){
	// get the data-form-id from this textarea
	var this_id = $(this).attr('data-form-id');
	// set the submit button's data-form-id attribute with the textarea's id
	$('#submitBtn').attr('data-form-id', this_id);
});
	
$('#submitBtn').click(function(){
	var formTo = $(this).attr('data-form-id');
	in formTo = $('#' + formTo);
	console.log(formTo);
	formTo.submit();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="submitBtn" data-form-id="" type="button" value="send">

	<form id="form-1" action="" method="post">
		<textarea name="info" cols="30" rows="10" data-form-id="form-1" class="inputs"></textarea>
	</form>
	
	<form id="form-2" action="" method="post">
		<textarea name="info" cols="30" rows="10" data-form-id="form-2" class="inputs"></textarea>
	</form>