删除所需的attr,如果来自数据库的条件在laravel 5.6中使用json

时间:2018-06-12 04:53:30

标签: json laravel laravel-5.6

如果数据库有数据js会给出所需的attr但是如果数据库没有单个数据,那么我想创建条件,attr required wil removed

这是我的json

$(document).ready(function () {

// ================== CHANGE ====================

$("#no_reg").change(function(e) {
console.log(e);
var no_reg_id = e.target.value;
$.get("/PickStandart/" + no_reg_id, function(data) {
  console.log(data);

  $('#standart').empty();
  $('#standart').append('<option value="">-- Select One --</option>');
  $.each(data, function (index, row) {
      if (row.name != null) {
        $('#standart').attr('required', 'required');
      }
      else {
        $('#standart').removeAttr("required");
      }

      $('#standart').append('<option value="'+ row.id +'">' + row.name + '</option>')
    });

});
});

});

我的问题是,如果数据为空,我无法删除所需的attr

这是我的json代码

$bagian = Bagian::where('id', '=', $standart)->first();

if ($bagian->standart_klausul == 1) {
  $standart = Standart::where('aktif', '=', 1)->get();
  return response()->json($standart);
}

1 个答案:

答案 0 :(得分:0)

试试这段代码:

$(document).ready(function () {

// ================== CHANGE ====================

$("#no_reg").change(function(e) {
console.log(e);
var no_reg_id = e.target.value;
$.get("/PickStandart/" + no_reg_id, function(data) {
  console.log(data);

  $('#standart').empty();
  $('#standart').append('<option value="">-- Select One --</option>');
  $.each(data, function (index, row) {
      if (row.name) {
        $('#standart').attr('required', 'required');
      }
      else {
        $('#standart').removeAttr("required");
      }

      $('#standart').append('<option value="'+ row.id +'">' + row.name + '</option>')
    });

});
});

});

请注意if条件。我使用row.name代替。正如我在评论中提到的那样,

在javascript中,如果undefined不可用,我们将获得data.name。因此,在条件中使用if(data.name)。如果条件将评估data.name,并且如果data.name为null or undefined

则视为false