Jquery 表单from.load()复选框和文件输入不起作用
使用Ajax,我在页面中加载表单。在这个表单中,还有文件输入、复选框和提交按钮。有了这些,我就可以提交表格了:Jquery 表单from.load()复选框和文件输入不起作用,jquery,html,ajax,forms,Jquery,Html,Ajax,Forms,使用Ajax,我在页面中加载表单。在这个表单中,还有文件输入、复选框和提交按钮。有了这些,我就可以提交表格了: $(WrapperDiv).on('click', SubmitButton, function(){...}) 我拿到了要提交的表格。这样,我也可以更改复选框的checked属性,但不能更改其外观。文件输入不会打开文件对话框。那么,它是如何处理这两个问题的呢 守则: HTML: 该死。我发现了问题。表单位于内部的内部div打包在外部div中,该div从网站的另一部分重用。在另一个.
$(WrapperDiv).on('click', SubmitButton, function(){...})
我拿到了要提交的表格。这样,我也可以更改复选框的checked属性,但不能更改其外观。文件输入不会打开文件对话框。那么,它是如何处理这两个问题的呢
守则:
HTML:
该死。我发现了问题。表单位于内部的内部div打包在外部div中,该div从网站的另一部分重用。在另一个.js文件中,我执行以下操作:
$('.form-outer').on('click', function(){
$(this).fadeOut()
}).children().on('click', function(e) {
return false;
});
这导致了一个问题,因为这个脚本阻止了外部div的所有子事件。所以我真是太蠢了。我讨厌它^-^ 看起来输入被禁用了。查看是否有匹配的CSS规则。不,它没有被禁用。表单中的所有正常输入都可以用作正常输入,我甚至可以在文件输入中拖动文档。我找不到CSS规则。
<form method="post" action="{% url 'wiki:add' typ %}">
{% csrf_token %}
<fieldset>
<legend>{{ typ|capfirst }} hinzufügen</legend>
<table class="table table-striped table-bordered">
{{ form.as_table }}
</table>
</fieldset>
<button type="submit" class="btn btn-default" id="form-btn">Senden</button>
</form>
$(document).ready(function(){
$('.add-btn').on('click', function(){
url = $(this).attr('data-url');
$('#add-inner').load(url, function(form){
$('#add-inner .datepicker').datepicker()
$('#add-inner textarea').tinymce({
theme: "modern",
height: 100,
})
$('#add-inner').hide()
$('#add-outer').fadeIn()
$('#add-inner').slideDown()
$('#add-inner').css('left', (($(window).width()-$('#add-inner').width())/2))
})
});
$('.add-outer').on('click', function(){
$('.add-outer .add-inner').slideUp('fast');
tinyMCE.remove();
})
$('#add-inner').on('click', 'input[type=checkbox]', function(){
console.log(this, 'click')
$(this).attr("checked", !$(this).attr("checked"));
})
$('#add-inner').on('click', '#form-btn', function(){
form = $('#add-inner form')
$.ajax({
type: 'POST',
url: form.attr('action'),
data: form.serialize(),
success: function(response){
if(response == 1){
$('#add-inner').slideUp()
$('#add-outer').fadeOut()
}
}
})
});
$(window).resize(function(){
$('#add-inner').css('left', (($(window).width()-$('#add-inner').width())/2))
});
})
$('.form-outer').on('click', function(){
$(this).fadeOut()
}).children().on('click', function(e) {
return false;
});