我有这个表格:

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

怎么了

最佳答案

您所拥有的是按面值you can test it here起作用的,需要检查以下几件事:


这是在document.ready处理程序中运行吗?例如您的代码应包装在
$(function() { /* current code */ });,以使$('#segform')直到<form>在DOM中并准备好被发现之前才运行(否则,它会将submit处理程序挂钩最多0个元素。
您遇到任何JavaScript错误吗?如果在代码运行之前发生任何问题,将不会绑定submit处理程序,并且您将获得默认的提交行为……这就是您所看到的。

08-17 12:40