首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入自动完成的非JavaScript版本所需的建议

问输入自动完成的非JavaScript版本所需的建议
EN

Stack Overflow用户
提问于 2010-09-21 12:30:02
回答 4查看 140关注 0票数 2

我正在建立一个应用程序,这是沉重的jQuery。我可以在不使用JS的情况下处理大部分问题,并且仍然有一个正常运行的站点,但是有一点让我感到困惑。(请注意,我使用的是ASP.NET MVC,但在本例中这并不重要)

我有一个输入域,它充分利用了jQuery-UI AutoComplete。行为非常简单。系统要求用户输入他们的城市,但会给出一个有效城市的AutoComplete列表。如果城市无效,服务器端验证将触发并告诉他们重试。

如果他们确实选择了一个有效的城市,则jQuery方法将更新一个包含所选城市的CityID的隐藏字段。它工作得非常好,我真的很喜欢它的表现。

这就是问题所在。如果JS在浏览器中不可用,则ID字段不会更新,因此数据库也不会更新。我根本没有在服务器端使用AutoComplete输入,只使用了ID字段。什么是绕过这个问题的好解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-21 13:11:58

如果由于某些原因sje397的答案对您不起作用(这是一个优雅的解决方案,除非城市自动选择是基于屏幕上的其他字段,如邮政编码或州),只需发布这两个字段。在评估POSTed数据时,如果城市文本框有数据,而隐藏字段没有数据,那么使用与jquery回调相同的验证方法评估输入的城市。如果隐藏字段包含数据,则假定javascript已启用,并使用当前逻辑。

票数 1
EN

Stack Overflow用户

发布于 2010-09-21 12:39:54

默认为包含城市作为选项和id作为值的选择元素,并在页面加载时使用脚本将其更改为自动完成字段。

票数 3
EN

Stack Overflow用户

发布于 2010-09-21 13:05:09

有几个选项:

1-最初显示“隐藏”输入的HTML,但不包括“自动完成”输入。当JS加载时,让一个函数根据您的当前情况编辑DOM。

2-将表单默认设置为向服务器发送“自动完成”数据。使用javascript编辑"send“函数,使其切换到”隐藏“输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3757307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档