jQuery返回[object Object]值(文本输入字段的镜像值)

时间:2018-08-11 02:03:57

标签: javascript php jquery forms input

我有4种输入形式:
1-名称
2-名字
3-姓氏
4-人员名称(隐藏输入)

每次更新/更改名称输入时,我都需要将名称文本字段内的值镜像到职员名称文本字段。我需要更改以实时反映,并且能够通过我的代码实现这一点。

我遇到的问题是:我需要检查输入的 Name 是否存在,如果不存在,请使用 Firstname Last代替输入值。

我能够成功镜像 Name 文本值,但是在代码必须使用 Firstname Last Name 值的情况下,所镜像的值显示为:[object Object]

我完全迷路了,因为console.log()显示正确的结果。

下面是我正在使用的代码:

$( document ).ready(function() {
    jQuery.fn.existsWithValue = function() { 
        return this.length && this.val().length; 
    }

    var name_field = $('form[name="card_form"] input[placeholder="Name"]');

    // Function that mirrors the "Staff Name" and "Name" fields everytime the "Name" field is updated
    // Mirrors "Name", "First Name" or "Last Name" inputs, depending on what input exists...
    $('form[name="card_form"] input[placeholder="Name"], form[name="card_form"] input[placeholder="First Name"], form[name="card_form"] input[placeholder="Last Name"]').bind('keyup change', function(e) {

      if ($(name_field).existsWithValue()) {
        // "Name" input exists, mirror "Name" input value:
        var name_field_final = $('form[name="card_form"] input[placeholder="Name"]').val();
      } else {
        // "Name" input does not exist, mirror "First Name" and "Last Name" input values:
        var first_name = $('form[name="card_form"] input[placeholder="First Name"]').val();
        var last_name = $('form[name="card_form"] input[placeholder="Last Name"]').val();

        var name_field_final = first_name + ' ' + last_name;
      }

      // MIRROR VALUES in "Staff" input:
      $('form[name="card_form"] input[name="staff"]').attr("value", $(name_field_final));

      // DEBUG
      console.log( first_name + " : " + last_name );
    });
  });

2 个答案:

答案 0 :(得分:3)

问题似乎是由于当属性只能是字符串时,将对象设置为值来设置属性引起的。同样最好使用 // MIRROR VALUES in "Staff" input: $('form[name="card_form"] input[name="staff"]').attr("value", $(name_field_final));

设置value属性

更改

 // MIRROR VALUES in "Staff" input:
  $('form[name="card_form"] input[name="staff"]').val(name_field_final);

csv.reader

答案 1 :(得分:3)

从此处删除$,使其成为jQuery对象

  // MIRROR VALUES in "Staff" input:
  $('form[name="card_form"] input[name="staff"]').val (name_field_final);