2012-06-11 96 views
0

我有一個這樣的形式很多鏈接:如何從鏈接獲取值並使用mootools發送表單?

<form name="myform" action="" method="get" id="form"> 

<p> 
<a href="getValue('A')" class="del">My link</a> 
</p> 
<p> 
<a href="getValue('B')" class="del">My link 2</a> 
</p> 
<p> 
<a href="getValue('C')" class="del">My link 3</a> 
</p> 

<input type="hidden" name="division" value="" />   
</form> 

我想從被點擊到PHP腳本的鏈接發送形式的價值,並得到響應(不重新加載頁面)。

我想編寫一個函數,從鏈接得到值:

<script type="text/javascript"> 
window.addEvent('domready', function() { 
getValue = function(division) 
{ 
var division; 
division=$('form').getElements('a');   
} 
</script> 

,但我不知道如何把它寫在一個正確的方式。接下來我想發送表格:

$$('a.del').each(function(el) { 
    el.addEvent('click', function(e) { 
    new Event(e).stop(); 

    $('form').submit(); 

    }); 
}); 

我應該怎麼發送它來獲取PHP文件的響應而不是重新加載頁面?

回答

0

這個工作對我來說:

<form id="form"> 
<a data-value="A">My link</a> 
... 
</form> 

<script> 
var links = document.id('form').getElements('a'); 
links.each(function(link) { 

link.addEvent('click', function(e) { 
    e.stop(); 

    var value = link.getProperty('data-value'); 

var req = new Request.HTML({ 
url: "/path/to/your/listener", 
data: value, 
onRequest: function(){ 
$('display').set('text', 'Search...'); 
    }, 
onComplete: function() { 

}, 
update : $('display') 
}).get( 
{data: value} 
); 
}); 
})  
</script> 
0

取而代之的是將javascript內聯放入HTML中,我建議使用委託事件來代替。我也會使用ajax調用而不是表單提交來發送表單。

<form id="form"> 
    <a data-value="A">My link</a> 
    ... 
</form> 

<script> 
    var formEl = document.id('form'); 
    formEl.addEvent('click:relay(.del)', function() { 
     var value = this.getProperty('data-value'); 
     new Request.JSON({ 
      url: '/path/to/your/listener', 
      onSuccess: function(data) { 
       // ... 
      } 
     }).get({ 
      value: value 
     }); 
    }); 
</script> 
+0

謝謝。我使用mootools 1.2.5。它不應該是'點擊:繼電器(a.del)'?我嘗試My link,沒有任何反應。在formEl.addEvent('click:relay(.del)',function(){我添加了alert('hmmm');並且它不起作用 – Delicja

+0

在1.2.4中事件委託在'mootools-more' 。 –

相關問題