我有这个表单:
<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 = "link1“而不是"foovalue”ffinactive= "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;
});但是当我收到输入时,这些值并没有改变。I aspect ffactives = "link1“和ffinactives = "link2”,但我收到aspect= "foovalue“和ffinactives = "foovalue”
出什么问题了?
发布于 2010-11-04 14:47:33
你所拥有的东西在表面上是有效的,you can test it here,有几件事需要检查:
document.ready处理程序中运行的吗?例如,你的代码应该被包装在$(function() { /* current code */ });,这样$('#segform')就不会运行,直到<form>在DOM中并准备好被找到(否则它将submit处理程序挂接到0个元素。
submit处理程序将不会被绑定,您将获得默认提交behavior...which就是您所看到的。发布于 2010-11-04 12:44:56
我猜你的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;
});然后,当您提交表单时,您应该在控制台中看到“submit :link1”。
https://stackoverflow.com/questions/4093817
复制相似问题