javascript - 使用 <a> 标签提交表单

标签 javascript html forms submit

我正在尝试通过标记上的 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>

最佳答案

你可以用原始 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>

对于那些问为什么我的 anchor 标记中有 href 元素的人,这是因为它是 anchor 标记的强制性部分,没有它也可以正常工作,但不符合规范。所以如果你想保证渲染等你必须给引擎一个完整的标签。所以上面实现了这一点。您会看到有时会使用 href="#" 但这并不总是需要的,因为浏览器会更改页面位置。

关于javascript - 使用 <a> 标签提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10039968/

相关文章:

Javascript 通过 parent ID 选择 child

javascript - 如何检查 bootstrap-4 模式是否已经打开?

javascript - PHPStorm > 将语言级别切换到 JSX Harmony

javascript - 根据另一个 Angular 的值验证字段

php - Jquery 不收集 textarea 值并且在特定条件下不将数组发送到 php

javascript - Ajax 表单提交重新加载页面

javascript - ie 中流动虚线(svg 路径动画)的最佳选择?

javascript - JQuery 中的倒计时问题

javascript - 删除不工作的 child

javascript - 按下键后获取文本区域值