Disable anchor link until action is performed
我有一个
1 2 | <i class="fa fa-chevron-left"> <i class="fa fa-chevron-right"> |
这只是在屏幕两侧的"箭头"。我的页面的布局为"所有合一",这意味着不会重新加载新页面,"主页"-"关于"-"等"页面都位于同一主页面中,您只需使用屏幕右侧和左侧的箭头在它们周围移动。
我在主页上有一个文件输入标签,我想禁用此箭头,直到用户提交文件为止。这是我的输入标签:
1 2 3 4 5 6 7 | <form action="{% url"do_some_work" %}" method="POST" enctype="multipart/form-data" class="custom-form-thing"> {% csrf_token %} <input id="some_file_input" type="file" name="some_file" class="custom-input-thing" data-buttonName="btn-primary" data-icon="true"> <button type="submit" class="btn btn-default">Submit</button> </form> |
我对javascript一无所知,但是在用户选择文件之前,我设法禁用了提交按钮。我猜箭头在这种情况下并没有太大区别,但是我说的是我对javascript很烂。
在此先感谢您的帮助。
问题:在用户提交文件之前,我如何禁用此箭头?
编辑
这是我禁用表单中的"提交"按钮的方式,与禁用标签有何不同?:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $('form').submit(function(event){ validated = true; if ($('#some_file_input').get(0).files.length === 0) { validated = false; console.log("No files selected."); // Or some div with image showing var div = document.createElement('div'); div.innerHTML ="<img src='{% static"wappApp/images/Icono_de_Alto.png"%}' classs= 'imgclass'>"; // better to use CSS though - just set class div.setAttribute('class', 'myclass'); // and make sure myclass has some styles in css document.body.appendChild(div); $('.myclass').finish().fadeIn("fast").delay(2000).fadeOut("slow"); } if (validated != true) { event.preventDefault(); } }); |
此解决方案不能真正确定文件是否确实已上传到服务器,但是可以确定是否进行了尝试。
我们需要提前隐藏按钮
1 2 | <i class="fa fa-chevron-left"> <i class="fa fa-chevron-right"> |
一旦用户提交文件,箭头就会出现
1 2 3 4 5 | $(document).ready(function(){ $(".custom-form-thing").submit(function() { $('a.hidden').removeClass('hidden'); }); }); |
但是完整的解决方案可能不只是jQuery CSS HTML
这是一个简单的示例。您应该缩小选择器的范围以选择特定的锚标记,否则它将应用于所有锚,但是您可以有个主意。
1 2 3 4 5 | $('a').on('click', function(e){ if (conditionNotMet) { e.preventDefault(); } }); |