1

我一直在努力解决这个问题,我想做的是首先根据选择的内容从文本中创建第二个隐藏输入字段,这就是我尝试过的:

  <script>
   var $extraval = $('#citycode option:selected').text();
   var input = $("<input>").attr("type", "hidden").attr("name", "city").val("$extraval");
   $('#form').append($(input));
  </script>

这是第一个选择的样子

<select id="citycode" name="citycode">
  <option value="3439389">Asuncion</option>
  <option value="3439352">Bella Vista</option>
  <option value="3439101">Ciudad Del Este</option>
  <option value="3438735">Encarnacion</option>
</select>

所以基本上我想要做的是创建第二个隐藏表单输入,当提交时这个选择的文本作为输入的值

4

5 回答 5

3

假设它在里面#form,我发现了两个错误:

  • "当您尝试将input值传递设置$extraval为参数时,您不必使用。
  • input 已经是一个 jQuery 对象,因此要附加它,您必须执行以下操作:.append(input)

尝试以下操作:

var extraval = $('#citycode option:selected').text();
var $input = $("<input>", {
    'type': 'hidden',
    'name': 'city',
    'value': extraval
});
$('#form').append($input);

演示

于 2012-08-29T11:34:10.657 回答
2

http://jsfiddle.net/pWkDR/ .. 这是你应该做的

代码:

var $extraval = "yourtext";
var input = $("<input>").attr("type", "hidden").attr("name", "city").val($extraval);
$('body').append(input);

// check in inspect element your  hidden field is there with data
于 2012-08-29T11:38:31.723 回答
2

.val($extraval)而不是.val("$extraval"). 这不是 PHP。

jsFiddle Demo(创建文本输入而不是隐藏 - 出于可见性目的)

此外,选择器'#form'需要您的代码中具有 id 的表单formselect您可以使用以下方法之一来获取它所属的表单:

$('#citycode').closest('form').append(input);

或者

input.appendTo($('#citycode').prop('form'));
于 2012-08-29T11:33:17.323 回答
2
  <script>
   var extraval = $('#citycode option:selected').text();
   var input = $("<input>").attr("type", "hidden").attr("name", "city").val(extraval);
   $('#form').append($(input));
  </script>

试试这个代码

于 2012-08-29T11:34:53.487 回答
0

好的,谢谢大家的帮助,这就是我的工作方式

<script>
  $('#form').submit(function() {
  var extraval = $('#citycode option:selected').text();
  var $input = $("<input>", {
   'type': 'hidden',
   'name': 'city',
   'value': extraval
   });
  $('#form').append($input);
 });
</script>

放在表格末尾效果很好

于 2012-08-29T12:16:48.270 回答