2017-09-28 1 views
0

こんにちは、誰もが私が間違ってやっているかを見ることができれば、私は不思議では動作しませんボタンのonclick、私は、フォームの結果を電子メールを開くボタンを持っている</p> <p>、Javascriptのクエリ

私は私がすべての

​​ でボタンの仕事をすることはできませんが、テキストリンク

<a href="javascript:doMailTo(' ');">Click here to email </a> 

としてそれを行う場合、それが正常に動作することができます3210

私はバリエーションを持って遊んできましたが、うまくいかない!

リンクとボタンはすぐ隣にあることができ、ボタンがないときはテキストリンクが機能します。

誰かが間違っているのを誰でも見ることができますか?

機能自体は

<script> 
function doMailTo(addr) { 
    location.href = "mailto:" + addr + "?subject=Flight Itinerary&body=" + 
      encodeURI(document.getElementById('p3').textContent); 
} 
</script> 

され、それがローカルシステム上で、このためのヘッダ

+0

doMailTo関数宣言を投稿できますか? – Burimi

+0

が質問にそれを追加しました、歓声 – willmadd

+0

onclick関数呼び出しでイベントオブジェクトを渡すことができます。その後、あなたの関数の定義でそれを防止する –

答えて

1

フォームのボタンのデフォルトはtype="submit"です。このボタンをクリックすると、フォームが送信されます。 type="button"を指定します。

<button type="button" onclick="doMailTo(' ');" value="toEmail">Send to Email</button> 
+0

これはボタンがフォーム内にある場合にのみ発生します。 – Barmar

+0

はい。私はそれがだと思った。しかし、もう一度質問を読んで、私はそれが指定されていないと思う。 – zord

+0

はい、ボタンがフォームにあります。申し訳ありませんが、明確ではありませんでした!しかし、これは助けになったようです!ありがとう – willmadd

1

てみてくださいに位置し:

これはあなた


 

 

 
$(document).ready(function() { 
 
    $('#bt1').click(function() { 
 
     $('#fr1').attr('action', 
 
         'mailto:[email protected]?subject=' + 
 
         $('#tb1').val() + '&body=' + $('#tb2').val()); 
 
     $('#fr1').submit(); 
 
    }); 
 
});
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 

 
</head> 
 
<body> 
 
<form id="fr1"> 
 
    <input type="text" id="tb1" /> 
 
    <input type="text" id="tb2" /> 
 
    <input type="button" id="bt1" value="click" /> 
 
</form> 
 

 
</body> 
 
</html>
のために動作します可能性があり

+0

彼はjQueryではなくプレーンなJavascriptを使用しています。 – Barmar

関連する問題