bootstrap模态不能分配输入值

时间:2014-12-08 13:00:25

标签: php jquery twitter-bootstrap-3

我打电话给ajax

$("#box-modal").on("shown",function(event)
   {
       $("#selectproductname").change(function(){
       var valueProduct = $(this).val();
       event.preventDefault();
       $.ajax({
          type:'GET',
          url:'/ajax/products_ajax.php?idProducto='+valueProduct+'&opcion=2',
          async:true,
          datatype:'text',
          success: function(data)
          { 
              $("#editor-panel").load("/ajax/order.html");
              $("#editor-actions").removeClass("hidden");
              var inputs = document.getElementById('editor-panel').getElementsByTagName('input');
              if(debug)
              {

                  inputs[0].value="holaaa";

              }

          }

首先我用php获取数据,我得到了

1#jeans*1.00**0@100

在我想将此数据作为我的order.html后, 例如:

inputs[1].value = jeans
inputs[2].value = 1.00
inputs[3].value = null

我使用console.log(输入)

[item: function, namedItem: function]
0: input#inputnombre
1: input#inputidproducto
2: input#inputprecio.form-control
3: input#inputcantidad.form-control
4: input#inputdescatalogado.form-control
inputcantidad: input#inputcantidad.form-control
inputdescatalogado: input#inputdescatalogado.form-control
inputidproducto: input#inputidproducto
inputnombre: input#inputnombre
inputprecio: input#inputprecio.form-control
length: 5

当我输入[0] .value =“hello”;

我收到错误:

 Uncaught TypeError: Cannot set property 'value' of undefined

按照ajax的顺序,我有:

<div class="panel panel-body">
        <form role="form" class="form-horizontal" id="form_order">
            <div class="form-group">
                <label for="inputnombre" class="col-md-4 col-xs-4 control-label">Nombre producto</label>
                <div class="col-md-4 col-xs-4 control-label">
                    <input id="inputnombre" name="inputnombre" required type="text" />
                    <input type="hidden" name="inputidproducto" id="inputidproducto"/>
                </div>
            </div>
            <div class="form-group">
                <label for="descripciontext" class="col-md-4 col-xs-4 control-label">Descripcion</label>
                <div class="col-md-4 col-xs-4 control-label">
                    <textarea cols="30" rows="10" id="descripciontext" name="descripciontext"></textarea>
                </div>
            </div>
            <div class="form-group">
                <label for="inputprecio" class="col-md-4 col-xs-4 control-label">Precio</label>
                <div class="col-md-4 col-xs-4 control-label">
                    <input id="inputprecio" name="inputprecio" class="form-control" required type="text" />
                </div>

我怎样才能让代码更容易?

2 个答案:

答案 0 :(得分:0)

var inputs = document.getElementById('editor-panel').getElementsByTagName('input');

jquery的

var inputs = $("#editor-panel input").eq(0).val("hello");

答案 1 :(得分:0)

Ajax .load需要时间,您需要在.load完成时分配值

$("#box-modal").on("shown", function(event) {
  $("#selectproductname").change(function() {
    var valueProduct = $(this).val();
    event.preventDefault();
    $.ajax({
      type: 'GET',
      url: '/ajax/products_ajax.php?idProducto=' + valueProduct + '&opcion=2',
      async: true,
      datatype: 'text',
      success: function(data) {
        // Ajax load takes time, you need a complete function here
        $("#editor-panel").load("/ajax/order.html", function() {
            // do below when "/ajax/order.html" is loaded
            $("#editor-actions").removeClass("hidden");
            var inputs = document.getElementById('editor-panel').getElementsByTagName('input');
            if (debug) {

                inputs[0].value = "holaaa";

            }


        });

      }
    });
  });
});