A strange error came up today on our e-commerce site, despite being used 100’s of times by iphones in the past one customer tried multiple times but kept getting errors. Checking the database showed the value from their payment method was not getting stored.
I can’t see anything wrong with the form at all and it works for everyone else including some other iphones. The part of the form in question looks like.
<tbody >
<tr >
<td ><input name="payment_type" type="radio" value="nc" checked id="master_card" /> <label for="master_card" >Master Card</label></td>
</tr>
<tr >
<td ><input name="payment_type" type="radio" value="nc" id="visa"/> <label for="visa" >Visa</label></td>
</tr>
<tr >
<td ><input name="payment_type" type="radio" value="sc" id="maestro" /> <label for="maestro" >Maestro</label></td>
</tr>
<tr >
<td ><input name="payment_type" type="radio" value="sc" id="visa_delta"/> <label for="visa_delta" >Visa Delta</label></td>
</tr>
<tr >
<td><input name="payment_type" type="radio" value="sc" id="switch"/> <label for="switch" >Switch/Solo</label></td>
</tr>
<tr>
<td ><input name="payment_type" type="radio" value="paypal" id="paypal" /> <label for="paypal" >(PayPal)</label></td>
</tr>
</tbody>
Looks fine to me, but you may want to try checked=”checked” – usually problems like this happen when your DOM is messed up and the browser is having trouble displaying the document. I’d advise putting the whole page through W3C validator and fix all the problems, then see if that fixes the problem.