我如何在这里输入字段?

时间:2019-10-25 12:36:41

标签: javascript jquery ajax

我刚刚创建了ajax响应,但是我不知道如何在此处提供输入字段。.我是Ajax的新手,请问您有什么建议。.

$.ajax({
        type: "GET",
        url: 'get/' + vouchno,
        // cache: false,
        success: function(data) {
            alert(data);
            alert(JSON.stringify(data));
            $('#vochDate').val(data.strvouchdt);
            $('#cashbill').val(data.billtype);
            $('#cashref').val(data.refno);
            $('#cashAc').val(data.acctname);
            $('#refdate').val(data.refdt);
            $('#payacc_code').val(data.acctcode);
            $('#cashAc').val(data.acctname);
            $('#cashAc').val(data.acctname);

            for (var i = 0; i < data.cashpayments.length; i++) {

                $("#tab_logic ").append('<tr><td>' + '<input type="text">' + data.cashpayments[i].acctcode + '</td>' +
                    '<td>' + '<input type="text">' + data.cashpayments[i].debit + '</td>' +
                    '<td>' + '<input type="text">' + data.cashpayments[i].acctcode + '</td>' +
                    '<td>' + '<input type="text">' + data.cashpayments[i].acctcode + '</td>' +
                    '<td>' + '<input type="text">' + data.cashpayments[i].acctcode + '</td>' + '</tr>');
            }
        },
        failure: function(data) {
            alert(data.responseText);
        },
        error: function(data) {
            alert(data.responseText);
        }
    });

2 个答案:

答案 0 :(得分:1)

完全猜测,您希望行列中的文本字段中预先填充值:

$("#tab_logic").append(`<tr><td><input type="text" value="${data.cashpayments[i].acctcode}"></td>
                    <td><input type="text" value="${data.cashpayments[i].debit}"></td>
                    <td><input type="text" value="${data.cashpayments[i].acctcode}"></td>
                    <td><input type="text" value="${data.cashpayments[i].acctcode}"></td>
                    <td><input type="text" value="${data.cashpayments[i].acctcode}"></td></tr>`);

答案 1 :(得分:1)

如果您要谈论的是将响应中的数据绑定为输入形式:

function populate(data) {
  for (var i in data) {
    if (typeof (data[i]) === 'object') {
      //populate(data[i]);
    } else {
      $(
        "input[type='text'][name='" + i + "']," +
        " input[type='hidden'][name='" + i + "'], " +
        "input[type='checkbox'][name='" + i + "'], " +
        "select[name='" + i + "'], textarea[name='" + i + "']"
      )
        .val(data[i]);

      $("input[type='radio'][name='" + i + "'][value='" + data[i] + "']").prop('checked', true);
      if ($("input[name='" + i + "']").hasClass('datepicker')) {
        $("input[name='" + i + "']").val($.datepicker.formatDate("dd-M-yy", new Date(data[i])));
      }
      if ($("input[name='" + i + "']").hasClass('financialValueFormat')) {
        var formatedAmount = financialValFormat(data[i]);
        $("input[name='" + i + "']").val(formatedAmount);
      }
    }
  }

  $('form').find('input[type="checkbox"]').each(
    function () {
      if ($(this).siblings('input[type="hidden"]').val() == "true" ||
        $(this).siblings('input[type="hidden"]').val() == 1) {
        $(this).prop('checked', true);
      } else {
        $(this).prop('checked', false);
      }
    }
  );
}

您可以在项目的某些位置定义此函数,该函数在全局可用,然后只需调用populate(response.data)

请忽略功能financialValFormat。此功能仅用于格式化货币值字段。