Emad Saif نشر 19 مارس 2022 أرسل تقرير نشر 19 مارس 2022 لدي حقلين الأول باسم country والثاني باسم city، وأريد أن أجعل الحقل city مطلوب required في حالة واحدة فقط وهي إذا كانت قيمة country تساوي 1 أو 2 أو 3 <select name="country"> <option value="1">First</option> <option value="2">Second</option> <option value="3">third</option> </select> <input type="text" name="city" /> كيف أقوم بجعل الحقل country مطلوب إذا كانت قيمة الحقل الثاني "city" تساوي 1 أو 2 أو 3 في ملف request في Laravel؟ 2 اقتباس
1 محمد أبو عواد نشر 19 مارس 2022 أرسل تقرير نشر 19 مارس 2022 يمكنك جعل الحقل country من نوع enum ويأخذ القيم 1 او 2 او 3 , أما الحقل city كما هو واضح من الكود الخاص بك يمكننا جعله string وفارغا أيضا فيكون الكود في ملف التهجير كالتالي $table->enum('country',[1,2,3]); $table->string('city')->nullable(); في ملف request يمكنك اعطاء الحقول بعض القواعد كالتالي $request->validate([ 'country'=>['required','in:1,2,3'], 'city'=>['required_if:country,1,2,3'] ]) 1 اقتباس
1 Hassan Hedr نشر 19 مارس 2022 أرسل تقرير نشر 19 مارس 2022 إذا كانت القيم المتاحة ل country هي فقط 1 و 2 و 3 يكفي فقط جعل الحقل city مطلوبًا دومًا كالتالي: <input type="text" name="city" required /> أما في حال وجود خيارات أخرى يمكن تحقيق ذلك باستخدام جافاسكريبت ضمن نفس الصفحة، نسجل استماع لحدث تغيير قيمة country ونتحقق من القيمة الجديدة ونعين فيما إذا كان الحقل city مطلوبًا على أساسها كالتالي: <script> document.querySelector('input[name=country]') // country اختيار العنصر .addEventListener('change', function (e) { // تسجيل استماع لحدث تغيير القيمة const selectedCountry = e.target.value; // القيمة الجديدة const cityRequried = ['1', '2', '3'].some(value => value == selectedCountry); // حقل المدينة مطلوب const city = document.querySelector('input[name=city]'); // حقل المدينة if (cityRequried) city.setAttribute("required","required"); // جعل الحقل مطلوبًا else city.removeAttribute("required"); // جعل الحقل اختياري }) </script> اقتباس
0 Ahmed Abu Hatab نشر 20 مارس 2022 أرسل تقرير نشر 20 مارس 2022 ستقوم بعمل request ، ومن خلاله ستفحص اذا ما تم اختيار ال option الاول او الثاني if ($request->country == 1 || $request->country == 2) { $request->validate([ 'city' => ['required'] ]); } ممكن أيضاً تفعيل ال required attribute في input tag <input type="text" name="city" required/> ولكن هذا الحل ليس منطقياً ، هناك حل اخر وبسيط جدا وهو ان تجعل الاختيار الثالث هو الاساسي والمختار بشكل طبيعي <option value="3" selected>third</option> وفي حال تم اختيار option اخر تقوم بتفعيل ال validate ل city كما في المثال الذي بالاعلى اقتباس
السؤال
Emad Saif
لدي حقلين الأول باسم country والثاني باسم city، وأريد أن أجعل الحقل city مطلوب required في حالة واحدة فقط وهي إذا كانت قيمة country تساوي 1 أو 2 أو 3
كيف أقوم بجعل الحقل country مطلوب إذا كانت قيمة الحقل الثاني "city" تساوي 1 أو 2 أو 3 في ملف request في Laravel؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.