У меня есть форма регистрации, которая отлично работает во всех браузерах … кроме Safari. Я думал, что это должна быть проблема, связанная с Javascript, так как это в основном. Но после того, как я отключил Javascript в Safari, до сих пор нет данных.
Форма находится в прямом эфире: http://tpgrf.nl/testserver/alpha/account/registreer/
Я добавил этот текст вверху страницы для тестирования, чтобы убедиться, что данные были опубликованы или нет.
if($_SERVER['REQUEST_METHOD'] == 'POST'){ echo 'post'; }else{ echo 'niets gepost'; }
Любые мысли, где искать ответ?
EDIT: Вот форма (выход HTML)
<form name="registerform" id="registerform" action="http://tpgrf.nl/testserver/alpha/account/registreer/" method="post"> <script type="text/javascript"> jQuery(document).ready(function($) { //Since we want users to login with there email; there's no need to also register a username. Therefore the username field = email field $("#user_login").live('change', function(){ $('#user_email').val($("#user_login").val()); }); //Display fields, depending on the selected role $('#role').live('change', function(){ if($('#role').val() === 'docent'){ $('#messageRegisterDocent').show(); $('#pKlas').hide(); }else{ $('#messageRegisterDocent').hide(); $('#pKlas').show(); } }); //The json call to automcplete School var ajaxurl = 'http://tpgrf.nl/testserver/alpha/wp-admin/admin-ajax.php'; $("#school").autocomplete({ delay: 0, minLength: 1, source: function(req, response){ $.getJSON('http://tpgrf.nl/testserver/alpha/wp-admin/admin-ajax.php?callback=?&action=school_autocomplete', req, response); }, select: function(event, ui){ $('#school').val(ui.item.label); $('#school_id').val(ui.item.school_id); } }); }); </script> <p> <input type="hidden" name="user_email" id="user_email" class="input" value="" size="20" /> <p> <label for="user_login">E-mail</label> <input type="email" name="user_login" id="user_login" class="input" value="" size="20" /> </p> <p> <label>Voornaam</label> <input id="first_name" type="text" size="25" value="" name="first_name" /> </p> <p> <label>Achternaam</label> <input id="last_name" type="text" size="25" value="" name="last_name" /> </p> <p> <label>Ik ben...</label> <select name="role" id="role"> <option value="">...selecteer</option> <option value="leerling" >Leerling</option> <option value="docent" >Docent</option> </select> <p class="message" id="messageRegisterDocent" style="display:none;"><strong>Let op:</strong> registreer met uw e-mailadres van de school waar u werkzaam bent. <br />Voor een aantal functies vindt namelijk handmatige autorisatie plaats; dit is niet mogelijk met een privé e-mailadres.</p> </p> <p> <label>Mijn school</label> <input type="text" id="school" class="autoComplete" size="25" value="" name="school" /> <input type="hidden" id="school_id" name="school_id" value=""> </p> <p id="pKlas"style="display:none;"> <label>Mijn klas</label> <input type="text" id="klas" size="25" value="" name="klas" /> </p> <p id="reg_passmail">U zult een wachtwoord per e-mail ontvangen.</p> <p class="submit"> <a href=""><input type="submit" name="wp-submit" id="wp-submit" value="Registratie" /></a> of <a href="/account/login">Ik heb al een account...</a> <input type="hidden" name="redirect_to" value="/testserver/alpha/account/login/?checkemail=registered" /> <input type="hidden" name="instance" value="" /> </p> </form>
Ваша проблема может быть вызвана следующей строкой кода:
<a href=""><input type="submit" name="wp-submit" id="wp-submit" value="Registratie" /></a>
Вы завершаете тег кнопки отправки внутри тега 'a', который указывает на пустой URL-адрес и вызывает ссылку только на текущую страницу. Возможно, Safari не разбирает эту завернутую кнопку хорошо и вместо этого предпочитает ссылку A над кнопкой отправки.
Развертывание тега 'input' и изменение кода на:
<input type="submit" name="wp-submit" id="wp-submit" value="Registratie" />
может работать.