Jquery提交不要在输入上设置值

时间:2010-11-04 04:07:26

标签: jquery submit

我有这样的表格:

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

什么是错的

2 个答案:

答案 0 :(得分:2)

你所做的工作面值you can test it here,需要检查一些事项:

  • 这是在document.ready处理程序中运行吗?例如你的代码应该包含在 $(function() { /* current code */ });以便$('#segform')<form>在DOM中并且准备好被找到之前不会运行(否则它会将submit处理程序挂钩到0个元素。
  • 您是否收到任何JavaScript错误?如果在代码运行之前发生了任何问题,那么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”。