繁体   English   中英

一种形式取决于两种按钮的动作?

[英]One form two actions depending on which button?

我有两个文件, preview.phpsave.php

<form id="create-template" class="form" action="" method="post">
    <p class="_50">
        <label for="t-name">Template name</label>
        <input type="text" name="t-name" class="required"/>
    </p>
    <p class="_100">
        <label for="t-html">Template HTML</label>
        <textarea id="t-html" name="t-html" class="required" rows="10" cols="40"></textarea>
    </p>
    <div class="clear"></div>

    <div class="block-actions">
        <ul class="actions-left">
            <li><a class="button red" id="reset-template" href="javascript:void(0);">Clear</a></li>
        </ul>
        <ul class="actions-right">
            <li><div id="preview"><input type="submit" class="button" value="Preview template" onclick="return false;"></div></li>
            <li><input type="submit" class="button" value="Create template"></li>
        </ul>
    </div>
</form>

当前的JS:

$("#preview").click(function() {
    $.post('preview.php', {body:$('#t-html').val().replace(/\n/g,'<br />'), function (result) {
        //maybe use .ajax instead? 
        //open preview.php in new window
    });
});

我如何使用相同的表格,但是根据一个人按下的按钮有两个不同的动作?

Preview template => preview.php => opens to a new tab

posts on same page Create template => save.php => posts on same page

您可以为按钮同时具有click事件处理程序,并且可以同时附加ajax调用。

您可以使用javascript在新标签页中打开窗口。

window.open(<url>)

尝试根据单击的按钮设置表单的“目标”属性。

将您的窗体更改为以下内容:

<form id="create-template" class="form" action="" method="post" target="_blank">
    <p class="_50">
        <label for="t-name">Template name</label>
        <input type="text" name="t-name" class="required"/>
    </p>
    <p class="_100">
        <label for="t-html">Template HTML</label>
        <textarea id="t-html" name="t-html" class="required" rows="10" cols="40"></textarea>
    </p>
    <div class="clear"></div>

    <div class="block-actions">
        <ul class="actions-left">
            <li><a class="button red" id="reset-template" href="javascript:void(0);">Clear</a></li>
        </ul>
        <ul class="actions-right">
            <li><input id="preview-form" type="submit" class="button" value="Preview template" /></li>
            <li><input type="submit" id="submit-form" class="button" value="Create template" /></li>
        </ul>
    </div>
</form>​

并添加以下JavaScript:

$('#preview-form').click(function(ev) {
    $('#create-template').attr('action', 'preview.php');    
    $('#create-template').attr('target', '_blank');
});

$('#submit-form').click(function(ev) {
    $('#create-template').attr('action', 'submit.php');
    $('#create-template').attr('target', '');
});
​

我尚未在所有浏览器上都对此进行过测试,因此您可能需要这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM