簡體   English   中英

如何填充此表單數據並用jquery發布

[英]How to populate this form data and post it with jquery

我有一個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')
     }

 }

現在,我對如何填充表單數據並發出發布請求感到困惑。 這里有任何幫助。

更改

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

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

要么:

您可以在prevenDefault按鈕單擊時調用prevenDefault方法。

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

序列化表單將從form控件獲取所有數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM