सबमिट नहीं कर सकता है मेरे पास एक वर्किंग फॉर्म सत्यापन होता है, जिसमें उपयोगकर्ता नाम की दूरस्थ जांच भी शामिल है। हमने script.js फ़ाइल में कई अन्य जावास्क्रिप्ट जोड़े हैं और हाल ही में इस बिंदु का रिमोट हिस्सा तोड़ दिया है। प्रमाणीकरण, new_name फ़ील्ड द्वारा केवल एक फॉर्म फ़ील्ड चेक किया जा रहा है। यह आवश्यक है (काम करता है) और उपलब्ध होना चाहिए (काम नहीं करता)।Jquery मान्य रिमोट विफल रहा है। फ़ॉर्म
यहाँ jQuery है:
$('#nickname_form').validate({
rules: {
new_name: {
required: true,
remote: {
url: '/api/screenname_unique/',
type: 'post'
}
}
},
messages: {
new_name: {
required: 'Please choose a Forum Username.',
remote: 'That Username is already taken or contains invalid characters.'
}
}
});
जैसा कि मैंने कहा करने से काम करने के लिए इस्तेमाल बिना किसी बदलाव के। मैंने बाकी script.js फ़ाइल की जांच की है और कोई त्रुटि दिखाई नहीं दे रही है। साथ ही, साइट पर, हम कहीं भी जेएस त्रुटियों को नहीं देख रहे हैं। अगर मैं उपर्युक्त कोड के दूरस्थ भाग को हटा देता हूं, तो आवश्यक चेक कार्य करता है और फ़ील्ड में कोई मान होने पर फॉर्म सबमिट होगा।
दूरस्थ जगह के साथ, फॉर्म सबमिट नहीं होगा, और रिमोट कॉल से AJAX प्रतिक्रिया सत्य या गलत है, कोई jQuery सत्यापन त्रुटि संदेश नहीं दिखाया गया है। रिमोट द्वारा बुलाया गया पृष्ठ यहां दिया गया है। ? यह प्रतिक्रिया तब दिए गए मूल्य के लिए दे रहा है के रूप में जहाँ तक ठीक काम करता है:
<?php
header('Content-type: application/json');
//get the post value
$screen_name = $_POST['new_name'];
//get their member_id
$member_id = $this->EE->session->userdata['member_id'];
//return false if no screen_name provided
if((!$screen_name) || (!$member_id)) {
echo json_encode(false);
exit;
} else { //there is a screen_name
//Regex Check for valid chars
$valid = !preg_match('/[^a-z0-9_ -]/i',trim($screen_name));
if (!$valid) {
echo json_encode(false);
exit;
}
//SQL
$results = $this->EE->db->query("SELECT member_id FROM exp_members WHERE screen_name = '$screen_name' and member_id <> '$member_id' limit 1");
if ($results->num_rows() > 0) {
echo json_encode(false);
} else {
echo json_encode(true);
}
}
>
मैं सच में यकीन है कि जहां यहां से जाने के लिए नहीं कर रहा हूँ। विचार?
क्या आपने 'console.log' का उपयोग किया है या समस्या को डीबग करने के लिए AJAX कॉल देखे हैं? – yoda
मैंने फायरबग के साथ देखा है और AJAX कॉल सही या गलत के साथ 200 ठीक लौट रहे हैं। फ़ंक्शन ठीक काम कर रहा है - फ़ॉर्म सिर्फ अनुपलब्ध उपयोगकर्ता नाम को सबमिट या प्रतिसाद नहीं देगा। –