javascript 隐藏提交按钮使用jquery函数不工作?

brccelvz  于 2024-01-05  发布在  Java
关注(0)|答案(1)|浏览(119)

我已经创建了一个django脆的形式.我想隐藏提交按钮,直到每个字段都已输入我发现一些使用jQuery的解决方案,但它是不显示提交按钮后,输入每个字段,我需要你的帮助,以进一步进行.
我已经添加了两个图像,隐藏提交按钮,并尝试jquery之前,

在尝试jquery后,即使输入每个字段,提交按钮也不可见。

下面是我的代码为各自的文件,
forms.py

  1. class AppForm(forms.ModelForm):
  2. class Meta:
  3. model = App
  4. fields = ('__all__')
  5. def __init__(self, *args, **kwargs):
  6. super(AppForm, self).__init__(*args, **kwargs)
  7. self.helper = FormHelper()
  8. self.helper.form_show_labels = False
  9. defualt_image_path = '/media/photo.png'
  10. self.fields['appicon'].widget.attrs['placeholder'] = defualt_image_path
  11. self.fields['appicon'].widget.attrs['classs']= 'appicon-field'
  12. self.fields['appname'].widget.attrs.update({'placeholder': 'Apps Name', 'class':'appname-field'})
  13. self.fields['link'].widget.attrs.update({'placeholder':'App Link','class':'link-field'})
  14. self.fields['category'].widget.attrs.update({'placeholder':'App Category', 'class': 'catg-field'})
  15. self.fields['subcategory'].widget.attrs.update({'placeholder':'Sub Category', 'class': 'subcatg-field'})
  16. self.fields['points'].widget.attrs.update({'placeholder':'ADD POINTS', 'class': 'points-field'})

字符串

  1. $(document).ready(function() {
  2. // Function to check if all fields are filled
  3. function checkFields() {
  4. var imageInput = $('.appicon-field')[0].files.length > 0;
  5. var charInput1 = $('.appname-field').val().trim() !== '';
  6. var charInput2 = $('.link-field').val().trim() !== '';
  7. var charInput3 = $('.catg-field').val().trim() !== '';
  8. var charInput4 = $('.subcatg-field').val().trim() !== '';
  9. var charInput5 = $('.points-field').val().trim() !== '';
  10. // Show/hide submit button based on input status
  11. document.querySelector('.submitform-button').style.display = imageInput && charInput1 && charInput2 && charInput3 && charInput4 && charInput5 ? 'inline-block' : 'none';
  12. }
  13. // Trigger checkFields on input change
  14. $('.appicon-field, .appname-field, .link field, .catg-field, .subcatg-field, .points-field').on('change', function() {
  15. checkFields();
  16. });
  17. // Initial check on page load
  18. checkFields();
  19. });
  1. .submitform-button {
  2. display: none;
  3. padding: 10px 75px;
  4. cursor: pointer;
  5. font-weight: bold;
  6. text-align: center;
  7. text-decoration: none;
  8. background-color: #f3c19d;
  9. color: #293845;
  10. border: 2px solid #ec975b;
  11. }
  1. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
  2. <div class="submit-div">
  3. <button type="submit" class="submitform-button" id="submitform-button">Submit</button>
  4. </div>
hmtdttj4

hmtdttj41#

下面是答案,请查看。

  1. document.addEventListener('DOMContentLoaded', function() {
  2. var nameField = $('.appname-field').val().trim() !== '';
  3. var linkField = $('.link-field').val().trim() !== '';
  4. var catgField = $('.catg-field').val().trim() !== '';
  5. var subcatgField = $('.subcatg-field').val().trim() !== '';
  6. var pointsField = $('.points-field').val().trim() !== '';
  7. $('.submitform-button').toggle(nameField && linkField && catgField && subcatgField && pointsField);
  8. }
  9. $('.appname-field, .link-field, .catg-field, .subcatg-field, .points-field').on('input', function() {
  10. checkFields();
  11. });
  12. checkFields();
  13. });

字符串
我从前面删除了这两行

  1. var imageInput = $('.appicon-field')[0].files.length > 0;
  2. document.querySelector('.submitform-button').style.display = imageInput && charInput1 && charInput2 && charInput3 && charInput4 && charInput5 ? 'inline-block' : 'none';


加上这一行,就得到了

  1. $('.submitform-button').toggle(nameField && linkField && catgField && subcatgField && pointsField);

展开查看全部

相关问题