2011-10-10 25 views
22

Ben bir parametrenasıl bir JavaScript işlevi içine form girdi değeri geçmesine

function foo(val) { ...} 

alan bir jenerik JavaScript işlevi var ve form gönderildiğinde işlevi çağırmak istiyorum

<form> 
<input type="text" id="formValueId"/> 
<input type="button" onclick="foo(this.formValueId)"/> 
</form> 

ama foo (this.formValueId) ifadesi işe yaramıyor (şaşırmadım, çaresiz bir girişimdi), yani soru, bir form değerini javascript işlevine nasıl iletebilirim. Bahsettiğim gibi javascript geneldir ve içindeki formu değiştirmek istemiyorum!

Form değerlerini jQuery (örneğin) ile almak için ortada bir yardımcı işlev oluşturabilir ve sonra işlevi çağırabilirim ancak yardımcı işlev olmadan bunu yapıp yapamayacağımı merak ediyorum.

+1

Bu formu metin alanına Enter'a (IE'de değil) girerek gönderilebileceğini ve tıklatmanızın tıklanmayacağını unutmayın. –

+0

Bu sizin cevabınız olabilir. demo: http://jsbin.com/icikav/5/edit#javascript ,html Aramaya çalıştığınız yöntem tanımlanmamış. – funerr

cevap

21

sizin inline tıklama işleyicisi almaya daha temiz ve böyle yapacağım:

$(document).ready(function() { 
    $('#button-id').click(function() { 
     foo($('#formValueId').val()); 
    }); 
}); 
17

o yapacaktır ölçüm girişlerini adlar verin daha kolay

<form> 
<input type="text" id="formValueId" name="valueId"/> 
<input type="button" onclick="foo(this.form.valueId.value)"/> 
</form> 

GÜNCELLEME: Eğer düğmesini verirsen

bir kimlik işler daha da kolay olabilir:

<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); 
} 
+0

yerine onclick = "foo (this.form.valueId.value)" ' ' onclick = "foo (valueId.value)" 'yi kullanabiliriz. Çalışıyor ... – nav3916872

5

Kullanım onclick="foo(document.getElementById('formValueId').value)"

6

bu yaklaşım çeşitli yolları vardır. Şahsen ben avoid in-line scripting. JQuery etiketlendiğinden, bunu kullanalım.

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()); 
    }); 
}); 
1

Daha kararlı yaklaşım:

<form onsubmit="foo($("#formValueId").val());return false;"> 
<input type="text" id="formValueId"/> 
<input type="submit" value="Text on the button"/> 
</form> 

return false; gerçek form gönderme önlemektir (w size varsayarak karınca bu).

2

Peki ya bunu bu şekilde yapabilirsiniz. Aynı için bir örnektir

<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 Script

function showAddress(address){ 

    alert("This is address :"+address) 

} 

. ve bu koşacak.

+0

Lütfen java betiğini ekleyiniz – Lijo

+0

okey ekleyeyim. – Krishna

İlgili konular