Je dois appeler à la fois la fonction jquery et appeler une action de contrôleur avec un bouton de soumission, maintenant toute la validation fonctionne mais elle n'appelle pas l'action du contrôleur. J'ai cherché et essayé beaucoup mais je n'ai pas trouvé de solution, j'ai fait comme ceci s'il vous plaît aider.Rails: balise de bouton submit n'appelant pas l'action du contrôleur
Ceci est mon Voir
<%= form_tag({action: :create_table}, multipart: true, method: :post, :id => 'contactform') do%>
<div class="form-group">
<label class=" control-label">Prefix</label>
<select class="form-control" id="prefix" name="prefix">
<option value=""></option>
<option value="tmp">tmp</option>
<option value="ref">ref</option>
<option value="client">client</option>
</select>
<br>
<label class=" control-label">Client</label>
<select class="form-control" id="client" name="client">
<option value=""></option>
<option value="kapow">kapow</option>
<option value="perfect_africa">perfect_africa</option>
<option value="earth_class_mail">earth_class_mail</option>
<option value="amzn_seller">amzn_seller</option>
</select>
<br>
</div>
<input type="file" name="file" id="myFile">
<div id="temp_display" name="disp"></div>
<br>
<input type="hidden" name="filename" id="my_file_name" value="">
<div class="form-group">
<label class=" control-label">Delimiter</label>
<select class="form-control" id="delimiter" name="delimiter">
<option value=""></option>
<option value=";">;</option>
<option value=",">,</option>
<option value="/t">tab</option
</select>
<br>
</div>
<div class="container">
<%= button_tag(type: 'submit', class: "btn btn-default", 'data-toggle' => 'modal', 'data-target'=>'#myModal', id: "concat") do %>
Submit
<% end %>
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Intel</h4>
</div>
<div class="modal-body">
<p>you have successfully created <p id="demo"></p> table.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button
</div>
</div>
</div>
</div>
</div>
<% end %>
Ceci est mon JS
$(document).ready(function() {
$('#concat').on('click', function(event) {
$('#contactform')
.formValidation({
framework: 'bootstrap',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
prefix: {
// The messages for this field are shown as usual
validators: {
notEmpty: {
message: 'The prefix is required'
},
}
},
client: {
// The messages for this field are shown as usual
validators: {
notEmpty: {
message: 'The client is required'
},
}
},
delimiter: {
// The messages for this field are shown as usual
validators: {
notEmpty: {
message: 'The delimiter is required'
},
}
}
}
});
if($("#prefix").val().length!=0 && $("#client").val().length!=0 && $("#delimiter").val().length!=0){
event.preventDefault();
}
event.stopImmediatePropagation()
concatenated_string = $("#prefix").val() + "_" + $("#client").val() + "_" + $("#myFile").val();
$("#concatenated_string").val(concatenated_string);
myvar = concatenated_string.replace(/C:\\fakepath\\/i, '');
var filename = myvar;
$("#temp_display").text(filename);
document.getElementById("my_file_name").value = filename;
alert(filename);
});
});
Ceci est mon action du contrôleur
def create_table
filename = params[:filename]
content = params[:file].path
del = params[:delimiter]
end
ok @gayavat va l'essayer –
ça ne fonctionne pas @gayavat –