我有这样的表格:
<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” 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 =“link1”和ffinactives =“link2”,但我收到ffactives =“foovalue”和ffinactives =“foovalue”
什么是错的
答案 0 :(得分:2)
你所做的工作面值you can test it here,需要检查一些事项:
document.ready
处理程序中运行吗?例如你的代码应该包含在
$(function() { /* current code */ });
以便$('#segform')
在<form>
在DOM中并且准备好被找到之前不会运行(否则它会将submit
处理程序挂钩到0个元素。submit
处理程序将不会被绑定,并且您将获得默认提交行为......这就是您所看到的。答案 1 :(得分: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;
});
然后,当您提交表单时,您应该在控制台中看到“submit:link1”。