我正在尝试通过标签上的onclick事件提交表单。我试过触发document.myform.submit(),this.form.submit(),parentNode.submit()等但这些都没有用!使用提交按钮,代码工作正常。但我想用标签代替那个。需要一些帮助。
<form id="myform" name="myform" method="POST" action="process_edit_questionnaire.php?project=<?php echo $project_id; ?>">
<input name="module" type="hidden" value="<?php echo $module_id;?>"/>
<input name="project" type="hidden" value="<?php echo $project_id;?>"/>
<input name="hidden_ques_id" type="hidden" value="<?php echo $data_array_ques[$j]['ques_id'];?>"/>
<div id="question_block">
<div id="serial_block">
<p id="s_original_<?php echo $j+1; ?>"><a href="#" onclick="showSelectBox(<?php echo $j+1; ?>)">Serial :
<?php
if($data_array_ques[$j]['ques_position']==NULL){
echo $j+1;
}
else {
echo $data_array_ques[$j]['ques_position'];
} ?></a></p>
<p id="s_select_box_<?php echo $j+1; ?>" style="display: none;">Serial :
<select name="serial">
<?php for($p=1;$p<=count($data_array_ques);$p++){ ?>
<option value="<?php echo $p; ?>" <?php if($p==$data_array_ques[$j]['ques_position']){ echo "selected=\"selected\"";} ?> ><?php echo $p; ?></option>
<?php } ?>
</select>
</p>
</div>
<div id="question_text">
<a href="#" onclick="showTextBox(<?php echo $j+1; ?>)"><p id="q_original_<?php echo $j+1; ?>"><?php echo $data_array_ques[$j]['ques_text']; ?></p></a>
<p id="q_text_box_<?php echo $j+1; ?>" style="display:none;"><textarea id="ques_text" name="ques_text" rows="3" cols="30"><?php echo $data_array_ques[$j]['ques_text']; ?></textarea></p>
</div>
</div>
<div id="menu_block">
<a href="" onclick="document.myform.submit()">Save Changes</a> |
<a href="delete_question.php?project=<?php echo $project_id; ?>&module=<?php echo $module_id; ?>">Delete This Question</a>
</div>
</form>
答案 0 :(得分:45)
你可以用原始的javascript
这样做<html>
<body>
<form id="my_form" method="post" action="mailto://test@test.com">
<a href="javascript:{}" onclick="document.getElementById('my_form').submit();">submit</a>
</form>
</body>
</html>
答案 1 :(得分:5)
像这样提交你的表格......
您的HTML代码
<form name="myform" action="handle-data.php"> Search: <input type='text' name='query' />
<a href="javascript: submitform()">Search</a>
</form>
JavaScript代码
<script type="text/javascript">
function submitform() { document.myform.submit(); }
</script>
答案 2 :(得分:5)
如果允许使用jquery,那么您可以使用以下代码以最简单的方式实现它:
<a href="javascript:$('#form_id').submit();">Login</a>
或
<a href="javascript:$('form').submit()">Login</a>
您可以在head标签()中使用以下行将jquery导入代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
答案 3 :(得分:4)
试试这个:
假设这样的HTML:
<form id="myform" name="myform" method="POST" action="process_edit_questionnaire.php?project=<?php echo $project_id; ?>">
<div id="question_block">
testing form
</div>
<a href="javascript: submit();">Submit</a>
</form>
<script type='text/javascript'>
function submit()
{
document.forms["myform"].submit();
}
</script>
你可以在这里查看:http://jsfiddle.net/Zm426/7/
答案 4 :(得分:4)
以下是我如何使用vanilla JS
<form id="myform" method="POST" action="xxx">
<!-- your stuff here -->
<a href="javascript:void()" onclick="document.getElementById('myform').submit();>Ponies await!</a>
</form>
您可以使用return false
和href="#"
vs void以及您需要的任何内容,但这种方法适用于Chrome 18,IE 9和Firefox 14,其余的主要取决于您的javascript
答案 5 :(得分:2)
是否有任何理由不使用提交按钮,然后使用css设置样式以匹配您的其他 a 标记?
我认为这会降低您对启用javascript的依赖性,并且仍能获得所需的结果。
答案 6 :(得分:2)
<form id="myform_id" action="/myMethode" role="form" method="post" >
<a href="javascript:$('#myform_id').submit();" >submit</a>
</form>
答案 7 :(得分:1)
我建议使用&#34; return false&#34;而不是在href-tag中使用一些javascript:
<form id="">
...
</form>
<a href="#" onclick="document.getElementById('myform').submit(); return false;">send form</a>
答案 8 :(得分:1)
您可以使用隐藏的提交按钮并使用java脚本/ jquery单击它,如下所示:
<form id="contactForm" method="post" class="contact-form">
<button type="submit" id="submitBtn" style="display:none;" data-validate="contact-form">Hidden Button</button>
<a href="javascript:;" class="myClass" onclick="$('#submitBtn').click();">Submit</a>
</form>
答案 9 :(得分:1)
使用Jquery,您可以执行以下操作:
$(document).ready(function() {
$('#btnSubmit').click(function() {
$('#deleteFrm').submit();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="" id="deleteFrm" method="POST">
<a id="btnSubmit">Submit</a>
</form>
答案 10 :(得分:0)
干净简单:
<form action="/myaction" method="post" target="_blank">
<!-- other elements -->
<a href="#" onclick="this.parentNode.submit();">Submit</a>
</form>
如果在新标签页(action
中打开表单target="_blank"
的网址,则:
<form action="/myaction" method="post" target="_blank">
<!-- other elements -->
<a href="#" onclick="this.parentNode.submit();">Submit</a>
</form>