4

HTMLに次の送信ボタンがあります。

<input name="submit" type="submit" value="Sign In" />

このメソッドを使用して、HTML リンクに変換したいと思います。

<a  href="#" onclick="document.getElementById('formname').submit()">Sign In</a>

しかし、フォームは送信されません。

ありがとう。

完全なコードは次のとおりです。

<form id="form_freeuser" action="login.php" method="post" name="form_freeuser">
            <div class="label"><label>Free User</label></div><input id="name" name="name" readonly="readonly" type="text" value="test" />
            <input id="user_email" name="email" readonly="readonly" type="password" value="test" />
            <input name="submit" type="submit" value="Sign In" />

        </form>
4

4 に答える 4

5

id属性が送信先に設定されていることを確認してくださいgetElementById()

<form id="formname" action="/foo" method="get">
    <a  href="#" onclick="document.getElementById('formname').submit()">Sign In</a>
</form>​

それはあなたが求めている質問であるコードを修正します。ただし、メタポイントとして、リンクを使用してフォームを送信することはお勧めしません. ユーザーは、リンクではなくボタンがフォームを送信することを期待しています。このようなセマンティクスを台無しにしないでください。ユーザーを混乱させ、困らせることになります。

CSS を使用してボタンのスタイルを設定し、ハイパーリンクのように見せることもできます。慣習を破るというまったく同じ問題があります。

于 2012-07-28T00:23:45.230 に答える
1

リンクをクリックすると、ブラウザはページから移動しようとするため、すべてのデータが失われます。あなたはできる:

<a  href="#" onclick="document.getElementById('formname').submit();return false">Sign In</a>

また、「formname」はフォームのIDまたはフォームの名前ですか?

そのコードが機能するには、次のものが必要です。

<form id="formname">

それ以外の

<form name="formname">

それ以外の場合は使用できます

document.formname

同じように

于 2012-07-28T00:24:13.167 に答える
0

この投稿では:ボタンをリンクのように見せるには?
@odedbd は優れたソリューションを提供します: http://jsfiddle.net/zYCN9/1/

彼のコードは、ボタンを通常の見た目のハイパーリンクに変えます。
JS ソリューションに対する利点は、JS を使用していないことです。したがって、JS が無効になっているユーザーは引き続きフォームを使用できます。これを行うには、はるかにエレガントで HTML に準拠した方法のようです。

リンクがダウンした場合に備えて、以下のコードをコピーしました。

<button> your button that looks like a link</button>

button {
    background:none!important;
     border:none; 
     padding:0!important;

    /*optional*/
    font-family:arial,sans-serif; /*input has OS specific font-family*/
     color:#069;
     cursor:pointer;
}
button:hover{
         text-decoration:underline;
}

さらに、-all- submit ボタンにこのスタイルを持たせたくないでしょう。だから私はこれを行うことをお勧めします:

<input type="submit" class="submit_hyperlink" value="submit this form"/>

input.submit_hyperlink {
    background:none!important;
     border:none; 
     padding:0!important;

    /*optional*/
    font-family:arial,sans-serif; /*input has OS specific font-family*/
     color:#069;
     cursor:pointer;
}

input.submit_hyperlink:hover{
         text-decoration:underline;
}
于 2014-04-01T07:59:26.697 に答える
0

あなたを使用Jqueryすると、次のように行うことができます

$(document).ready(function(){
    $('a').click(function(e){
        $('form').submit();
    });
});
于 2012-07-28T00:23:30.150 に答える