我制作了一个 HTML 表单,它被分成几个部分。
我正在使用 Jquery 根据已填写的部分向 body 元素添加类。
默认情况下,body 有一个类purchase-stop
。填写完所有部分后,这将变为purchase-go
。
当用户单击提交按钮时,我使用以下代码显示一条消息:
$("input").on('click', '.purchase-stop', function()
{
alert("You haven't visited all sections. Please visit them all to ensure you are happy with the choices");
});
麻烦的是这会显示甚至purchase-stop
已更改为purchase-go
。
我怎样才能让它只在课程是时显示purchase-stop
?
此外,表格上的两个字段是必填的。我使用以下代码检查是否填写了这些必填部分:
$(".changing-room").submit(function(e)
{
e.preventDefault();
var isFormValid = true;
$("input.required").each(function()
{
if ($.trim($(this).val()).length === 0)
{
$(this).parent().addClass("error");
isFormValid = false;
}
else
{
$(this).parent().removeClass("error");
}
});
if (!isFormValid)
{
alert("Some fields are blank (highlighted in red). Please fill them in");
$('input').blur();
}
if (isFormValid)
{
$('body').addClass('purchase-active');
window.scrollTo(0, 0);
}
return isFormValid;
});
但同样,我只希望它在 body 类设置为purchase-go
(而不是purchase stop
)时运行。
根据 Jquery 文档,我必须让 Jquery 在动态类上运行(因为purchase-go
不在加载的 HTML 中)。为此,我必须使用On() 函数。on函数组成如下:
.on("action [e.g. click]", "[trigger element]", function(event)
但是,我指定了一个触发元素,但它不起作用。