如何填充此表单数据并使用jquery发布

时间:2014-12-31 07:38:52

标签: javascript jquery html ajax

我有一个html表格如下: -

<form class="form-horizontal" role="form" method="post" action="" id="scheduler_form">{%csrf_token%}
    <div class="form-group">
        <label for="url" class="col-sm-3 control-label">URL</label>
        <div class="col-sm-6">
            <input type="url" name="url" class="form-control">
        </div>
    </div>
    <div class="form-group">
        <label for="reporttemplate" class="col-sm-3 control-label">SELECT REPORT TEMPLATE</label>
        <div class="col-sm-4">
            <select name="report_template_id" id="report_list_sel" class="form-control" data-placeholder="Choose a Template" required="required"></select>
        </div>
    </div>
    <div class="form-group">
        <label for="frequency" class="col-sm-3 control-label">FREQUENCY</label>
        <div class="col-sm-9">
            <label class="radio-inline" for="inlineRadio1">
                <input type="radio" name="frequency" id="inlineRadio1" value="hourly" checked="checked">Hourly</label>
            <label class="radio-inline">
                <input type="radio" name="frequency" id="inlineRadio2" value="Daily">Daily</label>
            <label class="radio-inline">
                <input type="radio" name="frequency" id="inlineRadio3" value="Weekly">Weekly</label>
        </div>
    </div>
    <div class="form-group">
        <label for="email" class="col-sm-3 control-label">EMAIL</label>
        <div class="col-sm-6">
            <input type="email" name="email" class="form-control">
        </div>
    </div>
    <label for="alerts" class="col-sm-3 control-label" style="padding-right:23px">ALERTS</label>
    <div class="form-group">
        <div class="checkbox col-sm-offset-3" id="alert_list" style="height:100px;overflow-y:auto"></div>
    </div>
    <button type="submit" class="btn btn-warning pull-right" id="create_schedule">CREATE</button>
    <button type="button" class="btn btn-default pull-right closediv" data-dismiss="setup_blk" aria-label="Close">CANCEL</button>
</form>

我有一个通用方法来进行Ajax调用。

function makeAJAXRequest(_uri, _method, _data, _contenttype, _datatype, _context, _processdata, _successHandler, _errorHandler){
  var _jqXHR = $.ajax({
    url: _uri,
    type: _method,
    data: _data,
    contentType: _contenttype,
    dataType: _datatype,
    context: _context,
    processData: _processdata,
    cache: true
  });
  _jqXHR.done( _successHandler );
  _jqXHR.fail( _errorHandler );
}

现在我绑定create_schedule按钮如下。

 $('#create_schedule').on('click', function (event) {
     // Call a function createScheduler to build json data for AJAX - POST call and get response.
     createScheduler();
 });

 function createScheduler() {
     var _schedulerData = {};
     $.each($('#scheduler_form'), function () {
         _schedulerData[this.name] = this.value;
         console.log(_schedulerData);
     });

     makeAJAXRequest(
     API_SCHEDULE,
         'post', _schedulerData,
         '',

         'json', {},

     true,
     createUserScheduleSuccessHandler,
     createUserScheduleErrorHandler);

     function createUserScheduleSuccessHandler(_data) {
         console.log(_data);
     }

     function createUserScheduleErrorHandler(jqXHR, textStatus, errorThrown) {
         console.log('Error')
     }

 }

现在我对如何填充表单数据和发布帖子请求感到困惑。这里有任何帮助。

1 个答案:

答案 0 :(得分:1)

更改

<button type="submit" class="btn btn-warning pull-right" .... >

<button type="button" class="btn btn-warning pull-right" .....>

OR:

按钮点击时可以调用prevenDefault方法。

event.preventDefault();
console.log( $( '.form-horizontal' ).serialize() );

serializing表单将获取form控件的所有数据。