このコードは正常に機能します...読みにくいかもしれませんが。ただし、jshint.comに準拠し、読みやすくしたいと思います。
これを変更する方法はたくさんありますが、最善の方法がわかりません。
基本的に、client_validatinをオン/オフにできる必要があります。そして、データが検証された場合、サーバーにajax呼び出しを行います。
私がそれを書いたとき、これはハックのように感じました。特にclient_failの使用(つまり、クライアントが検証に合格したかどうかを判断するために使用されました)。
このコードの場合
function interface_signin()
{
var form_name='signin',
form_elements=document.forms[form_name].elements,
response_div='signin_response',
client_fail=0;
if(arc.client_validation===1)
{
(client_fail=1)&&check_empty(form_elements,response_div,messages.empty)&&check_item(patterns.email,form_elements[0],response_div,messages.email)&&check_item(patterns.pass,form_elements[1],response_div,messages.validate)&&(client_fail=0);
}
if(client_fail===0){ajax('arche_model.php',serialize(form_name)+'&a=signin',ajax_signin,response_div);}
}
エラーが発生します
Line 466: (client_fail=1)&&check_empty(form_elements,response_div,messages.empty)&&check_item(patterns.email,form_elements[0],response_div,messages.email)&&check_item(patterns.pass,form_elements[1],response_div,messages.validate)&&(client_fail=0);
代入または関数呼び出しを期待し、代わりに式を見ました。