احصل على جميع العناصر المحددة في نموذج من خلال الرجوع إلى $ (هذا) بدلاً من $ ("SELECT")
-
24-09-2019 - |
سؤال
أحصل حاليًا على جميع العناصر المختارة الموجودة في شكل مع ما يلي:
$("form").submit(function(event)
{
// gather data
var data = GetSelectData($("form select"));
// do submit
$.post($(this).attr("action"), data, ..etc)
});
بدلا من المرور $("form select")
, ، هل هناك طريقة يمكنني قول شيء مثل
$(this).children('select') // this doesn't work, btw
للحصول على جميع العناصر المحددة الموجودة في سياق النموذج الذي يتم تنفيذ حدث إرسال؟
سيسمح لي هذا بتقليل الكود الخاص بي إلى ما يلي ، ونقل جميع الوظائف إلى وظيفة مشتركة:
$("form").submit(function(event)
{
GatherDataAndSubmit($(this));
});
function GatherDataAndSubmit(obj)
{
var data = GetSelectData(obj.children('select'));
$.post(obj.attr("action"), data, ..etc)
}
شكرًا
ديف
المحلول
يستخدم .تجد()
محاولة
var data = GetSelectData(obj.find('select'));
تتشابه أساليب .find () و.
$("form").submit(function(event)
{
GatherDataAndSubmit($(this));
});
function GatherDataAndSubmit(obj)
{
var data = GetSelectData(obj.find('select'));
$.post(obj.attr("action"), data, ..etc)
}
نصائح أخرى
$("form").submit(function(event) {
// gather data
var data = GetSelectData($("select", this));
// ...
});
حدد دائمًا الوسيطة الثانية عند الإمكان ، وهذا يحدد السياق/النطاق الذي سيبحث فيه المحدد بالفعل.
لا تنتمي إلى StackOverflow