jQuery数据字符串var返回未定义

时间:2019-02-06 20:08:33

标签: jquery variables

我已经搜索过SO,找不到合适的答案。

非常简单。我通过表单提交定义变量:

var first_name=jQuery("#contact_first_name_1").val();
var last_name=jQuery("#contact_last_name_1").val();
var email=jQuery("#contact_email_1").val(); 

然后定义“ dataString”

var dataString =
'first_name='+ first_name + 
'&last_name=' + last_name + 
'&email=' + email + 

但是如果表单字段留空,则会出现问题,它返回“ undefined”。

我尝试了这个,但是没有用:

if (last_name != undefined) {
   '&last_name=' + last_name + 
}

我知道这很简单,但是根本无法获得适合该示例的代码。 谢谢!

1 个答案:

答案 0 :(得分:2)

!==''

空输入的值为'',当输入为''时,使用三进制将其更改为''

演示

var dataString = '';
var clean = '';

$('#main').on('change', function() {
  var first_name = $('#contact_first_name_1').val();
  var last_name = $("#contact_last_name_1").val();
  var email = $("#contact_email_1").val();
  var mobile = $("#contact_mobile_1").val();

  var first = first_name !== '' ? `&first_name=${first_name}` : '';
  var last = last_name !== '' ? `&last_name=${last_name}` : '';
  var mail = email !== '' ? `&email=${email}` : '';
  var tel = mobile !== '' ? `&mobile=${mobile}` : '';

  dataString = `dataString: ${first}${last}${mail}${tel}`;

  console.log(dataString);
});
$('form').on('submit', function(e) {
  e.preventDefault();
  var clean = $(this).serialize();
  console.log(`clean: ${clean}`);
  this.submit();
});
<form id='main' name='main' action='https://httpbin.org/post' method='post' target='response'>
  <input id='contact_first_name_1' name='first'>
  <input id='contact_last_name_1' name='last'>
  <input id='contact_email_1' type='email' name='email'>
  <input id='contact_mobile_1' type='tel' name='mobile'>
  <input type='submit'>
</form>
<iframe src='about:blank' name='response'></iframe>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>