0

好的,所以我使用 jQuery ajax() 调用从 php 页面获取响应,以便提交/检查表单。当它成功时,它会返回一个表单元素列表和相应的消息,说明它们有什么问题(例如缺少字段、无效输入等)。

然后,它再次使用 jQuery 循环遍历由 ajax 调用返回的每个表单元素并更改它们的 css(通过 导入) - 例如使元素边框变为红色,以指示该元素的错误。

这工作得很好。但是,假设我提交了缺少字段的表单 - ajax 进行了调用,并且页面的 css 被更改为用红色突出显示该字段。现在假设我解决了该字段的问题(例如,给它提供有效数据)并重新提交,但这次缺少不同的字段。虽然它会正确地为新的缺失字段提供红色边框,但它不会从重新提交时正确的字段中删除红色边框。换句话说,一旦红色边界出现,我就永远无法清除它。

我想我可能需要在 javascript 中做一个“重新加载 css”类型的函数来在 ajax 调用之后重新加载 css ......或者什么?我真的不知道。不过,这似乎应该是一件非常普遍的事情。环顾四周,它看起来可能与缓存页面有关,但我认为我无法控制这类事情。

可能值得一提的是,我正在使用 Less CSS。哈尔普兹?

4

2 回答 2

0

不确定如何在回调中添加边框/样式,但我建议在该类中声明的样式中缺少的表单字段中添加一个 css 类。然后使用 'if' 语句或 :focus 事件,在用户点击返回类时删除类。

于 2012-05-03T18:40:41.050 回答
0

我觉得你想多了。您不想直接使用 jQuery 修改 CSS。您只想打开和关闭课程。

因此,如果这是您的领域:

<input type="text" />

并且有一个错误,让服务器返回这个:

<input type="text" class="error" />

然后,如果您需要关闭错误状态

$theInput.removeClass("error")

这样你就不会直接接触 CSS,也没有必要“重新加载”它(不是这样就能解决问题)。

于 2012-05-03T18:44:31.740 回答