Can autocapitalize be turned off with javascript in mobile safari?

This should be fixed in iPhone OS 3.0. What version of iPhone OS are you trying this on?

Email: <input id="email" type="text"><br>
URL: <input id="url" type="text"><br>
<script>
//document.getElementById("email").autocapitalize = 'off';
//document.getElementById("url").autocapitalize = 'on';
document.getElementById("email").setAttribute('autocapitalize', 'off');
document.getElementById("url").setAttribute('autocapitalize', 'on');
alert(document.body.innerHTML);
</script>

Side note. You can improve the user experience on iOS even more by specifying the type of the input to be "email" to automatically bring up the "email" keyboard (slightly better characters for typing an email).

<input type="email" class="email" autocapitalize="off" />

Here is some documentation on how input types can control the iOS keyboard.


It's just as invalid if you add it via script or if you add it in the markup. It's just that the validator isn't able to notice it if you add it via script.

Just put it in the markup and put a comment next to it, like <!-- the "autocapitalize" attribute is an Apple proprietary extension for the iPhone to change its IME behaviour -->, that way people who look at the code in the validator will know what's up.