我不确定我是否会以正确的方式问这个问题。我第一次开发功能手机,例如带宽有限的用户运行 Opera Mini 并且没有 JavaScript。
我有一个带有文本框和可选照片 uploader 的表单。大多数人不会上传照片。我想实现以下行为:如果用户从手机中选择要在表单中提交的文件,则提交按钮文本将从“提交”更改为“带照片提交”。如果没有 JavaScript,这可能吗?
最佳答案
如果没有 JavaScript,答案就是不。我的回答是不并且是javascript .
让我解释一下。
关于 Opera Mini 中的 javascript。
Opera Mini
中未禁用 JavaScript。你可以使用它。例如,Opera Mini 支持 XMLHttpRequest
、querySelector/querySeletorAll
。
Opera Mini
在其服务器上有一个 Presto
JavaScript 引擎,该引擎在桌面 Opera 上使用,但没有 CSS3 功能,这对于浏览器的渲染来说是昂贵的。
关于表单和 it 元素。
Opera Mini
仅支持 select
元素的更改事件。然后您更改选择Opera Mini
,通过使用 Opera Mini 服务器中更改后的选择值重新加载页面来重新呈现页面。
Example
:
HTML:
<form action="">
<select>
<option>Change me</option>
<option>Im changed</option>
</select><br>
<input type="file" id="file-control"><br>
<input type="submit" value="Submit" id="submit-control">
</form>
Javascript:
var submitNode = document.getElementById('submit-control');
document.getElementById('file-control').addEventListener('change', function () {
//this will not fire in Opera Mini
if (this.files[0]) {
submitNode.value = 'Submit with photo';
} else {
submitNode.value = 'Submit';
}
});
document.querySelector('select').addEventListener('change', function () {
//this will work in Opera Mini and call after Opera Mini get changed page from Opera Mini server
alert('Select was changed');
});
阅读本文了解 Opera Mini 的功能:
关于javascript - 在具有 Opera Mini 的功能手机上,选择要上传的文件是否可以在没有 JavaScript 的情况下触发 UI 更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23773899/