2010-11-04 50 views
2

提交不要設定值我有這種形式:jQuery的輸入端上的

<form id="segform" action="TestServlet" method="POST" > 
    <div id="actives" class="rounded-corners"> 
    <div class="column">       
    <div class="portlet"><a href="#">link1</a></div> 
    </div> 
    </div> 

    <div id="inactives" class="rounded-corners"> 
    <div class="column"> 
    <div class="portlet"><a href="#">link2</a></div> 
    </div> 
    </div> 

    <input type="hidden" name="ffactives" value="foovalue" /> 
    <input type="hidden" name="ffinactives" value="foovalue" /> 
    <input type="submit" /> 
</form> 

我需要時提交表單鏈接的內容被設置爲輸入:

ffactives =「鏈接1」,而不是「foovalue」 ffinactives = 「LINK2」,而不是 「foovalue」

我現在使用的jQuery代碼:

$('#segform').submit(function(){ 
    var act = $('#actives div.column div.portlet a').text(); 
    var inact = $('#inactives div.column div.portlet a').text(); 
    $('input[name=ffactives]').val(act); 
    $('input[name=ffinactives]').val(inact); 
    return true; 
}); 

但是,當我收到輸入的值沒有改變。 我縱橫ffactives = 「鏈接1」 和ffinactives = 「鏈接2」,但我收到ffactives = 「foovalue」 和ffinactives = 「foovalue」

哪些錯誤

+0

我只是把這個測試代碼和它爲我工作(反正在Chrome中)。我希望有人回答這個問題,因爲我有興趣找出它爲什麼不適合你。 – 2010-11-04 04:20:29

回答

2

你有面值,you can test it here作品,幾件事情要檢查什麼:

  • 處於document.ready處理這個運行?例如你的代碼應該在
    $(function() { /* current code */ });使被包裹的是$('#segform')不運行,直到<form>是在DOM和正待被發現(否則它掛鉤一個submit處理器至0元。
  • ,能得到任何JavaScript錯誤?如果在你的代碼運行之前發生任何事情,submit處理程序將不會被綁定,並且你會得到默認的提交行爲...這就是你所看到的
+0

非常感謝Craver。文件準備好後問題就解決了。 – ulima69 2010-11-04 12:33:26

0

我猜你的JS運行不正常。試試這個版本的提交處理

$('#segform').submit(function(event){ 
    var act = $('#actives div.column div.portlet a').text(); 
    var inact = $('#inactives div.column div.portlet a').text(); 
    $('input[name=ffactives]').val(act); 
    $('input[name=ffinactives]').val(inact); 

    console.log('submit:', $('input').val(); 

    event.preventDefault(); 
    return false; 
}); 

那麼你應該看到的「提交:鏈接1」在控制檯中,當您提交表單。

+0

感謝您的提示hybernaut。 document.ready解決。 – ulima69 2010-11-04 12:34:20