1つのパラメーターを取る汎用JavaScript関数があります
function foo(val) { ...}
フォームを送信するときに関数を呼び出したい
<form>
<input type="text" id="formValueId"/>
<input type="button" onclick="foo(this.formValueId)"/>
</form>
しかし、式foo(this.formValueId)は機能しません(驚くことではありませんが、必死の試みでした)。そのため、質問は、フォーム値をjavascript関数に渡す方法です。前述したように、javascriptはジェネリックであり、その中のフォームを操作したくありません!
途中でヘルパー関数を作成して(たとえば)jQueryでフォームの値を取得し、その関数を呼び出すことができますが、ヘルパー関数なしで実行できるかどうか疑問に思っていました。
インラインクリックハンドラーを取り出して次のように実行すると、よりクリーンになる場合があります。
$(document).ready(function() {
$('#button-id').click(function() {
foo($('#formValueId').val());
});
});
入力名を付けると簡単になります
<form>
<input type="text" id="formValueId" name="valueId"/>
<input type="button" onclick="foo(this.form.valueId.value)"/>
</form>
更新:
ボタンにidを指定すると、さらに簡単になります。
<form>
<input type="text" id="formValueId" name="valueId"/>
<input type="button" id="theButton"/>
</form>
Javascript:
var button = document.getElementById("theButton"),
value = button.form.valueId.value;
button.onclick = function() {
foo(value);
}
onclick="foo(document.getElementById('formValueId').value)"
を使用します
これにアプローチする方法はいくつかあります。個人的には、私は インラインスクリプトを避ける にします。 jQueryにタグを付けたので、それを使用しましょう。
HTML:
<form>
<input type="text" id="formValueId" name="valueId"/>
<input type="button" id="myButton" />
</form>
JavaScript:
$(document).ready(function() {
$('#myButton').click(function() {
foo($('#formValueId').val());
});
});
ええ、この方法でそれを行うことができます。
<input type="text" name="address" id="address">
<div id="map_canvas" style="width: 500px; height: 300px"></div>
<input type="button" onclick="showAddress(address.value)" value="ShowMap"/>
Javaスクリプト
function showAddress(address){
alert("This is address :"+address)
}
それは同じことの一例です。それが実行されます。
より安定したアプローチ:
<form onsubmit="foo($("#formValueId").val());return false;">
<input type="text" id="formValueId"/>
<input type="submit" value="Text on the button"/>
</form>
return false;
は、実際のフォームの送信を防止するためのものです(必要な場合)。