禁用点击输入
回答
,你可以这样做:
<div class="btn btn-app btn-app-spinner">
<input type="text" class="form-control small-input">
<a onclick="reply_click();" >
Set Budget
</a>
</div>
在你拨弄我的答案提供HTML取代你的HTML,你将有你想要的东西。
诀窍是将你在a
中的相同类添加到他们看起来类似的另一个元素。
然后,如果你希望在用户点击“设置预算”,与<a>
我刚添加style =“color:#666”,让颜色不是蓝色,但看起来像其他按钮。这很酷。 – Dejell
你说得对。我忘了改变这一点。 –
看到把一个input
内的a
元素是无效的HTML。从the spec for a
:
内容模型:
Transparent,但必须有没有interactive content后裔。
input
是互动内容,所以它不能出现在a
之内。浏览器可能会选择重写您的HTML,以便在a
后面的input
尝试使其有效。
所以这里的解决方案是不要把input
放在a
的内部。不仅因为HTML不允许它(你可以通过div
上的点击处理程序来解决这个问题),而是因为它非常不同寻常的用户体验,这对用户来说是陌生的,可能会让用户感到不舒服。
说了这么多,如果浏览器不重新定位input
(或者,如果你有一个div
与click
处理器更换a
),您可以通过在挂钩click
传播到a
停止事件input
和使用stopPropgation
:
$("a input").on("click", function(e) {
e.stopPropagation();
}):
我不建议,虽然。
如何创建上述外观和感觉? – Dejell
使用div而不是链接 –
@Dejell:基本上,在按钮内部有一个输入是一个**非常不同寻常的用户体验。因此,虽然你可能会做到这一点(例如,oliv37的想法是合理的,一个带'click'处理程序的'div';你也需要上面的'stopPropgation';或者打破整体事物进入顶部,输入端左右两侧,以及底部位,并将它们全部定位),对于您的用户来说,这将是一种奇怪的事情,而这些用户以前不会遇到过这种情况。所以我会退后一步,重新审视用户体验,而不是实现这一点。 –
在理论上把它包起来就可以实现你像这样的东西
$(".setBid").click(function(e){
var $input = $(this).find("input[type='text']");
if ($input.is(e.target)
{
//do action
}
})
寻找影响你的行动解雇
这里的HTML
<a class="btn btn-app btn-app-spinner setBid">
<input type="text" disabled class="form-control small-input">
Set Budget
</a>
然而,由于@TJ说,这不是有效的HTML
这是无效的html!不要那样做!
如果你一定要,那么就通过处理输入上的点击停止传播:
function reply_click(e){
alert("clicked!");
}
function input_click(e)
{
e.stopPropagation();
return false;
}
<a onclick="reply_click();" class="btn btn-app btn-app-spinner">
<input type="text" class="form-control small-input" onclick="input_click(event)">
Set Budget
</a>
这个片段是不是跨浏览器的安全(在Chrome测试)。使用jQuery,或者处理其他浏览器处理事件的方式。
您可以创建一个div
并在该div上使用click
。这样你有有效的HTML。
function bid(){
alert('bid');
}
function stop(e){
e.stopPropagation();
}
div {
width:200px;
height:60px;
background-color:#f93;
text-align:center;
padding-top:20px;
}
<div onclick="bid()">
<input type='text' onclick="stop(event)">
<p>bid</p>
</div>
你不应该换一个链接里面的input
元素。
取而代之的是input
needs a label(对于可访问性,尤其是屏幕阅读器用户)以及一些用作按钮的功能(下面代码中的实际button
元素)。由于您没有合适的label
元素,因此我使用WAI-ARIA described-by
将输入字段与按钮链接起来。
<form>
<input type="text" class="form-control small-input"
aria-describedby="ses-budget" />
<br />
<button type="submit" onclick="reply_click();"
class="btn btn-app btn-app-spinner" id="set-budget">Set budget</button>
</form>
- 1. Telerik ComboBox禁用输入点击或禁用表单提交输入点击
- 2. 如何禁用点击输入?
- 3. 禁用输入点'。' javascript
- 4. jQuery禁用和启用输入类型图像点击时
- 5. 点击输入javascript
- 6. 禁用输入框,直到锚链接点击
- 7. (击)管道回声到节点禁用程序键盘输入
- 8. 禁用点击单击
- 9. 点击进入后禁用按钮as3
- 10. Angular,点击输入后如何关注点击输入
- 11. 点击禁用TabBarItem
- 12. jQuery禁用点击
- 13. 黑客:禁用点击与jQuery点击
- 14. 禁用滚动输入焦点在JavaScript
- 15. 启用/禁用touchmove点击
- 16. jQuery的 - 在点击输入
- 17. 点击输入元素(FileUpload)
- 18. 滑出输入栏点击
- 19. 点击自动输入
- 20. 如何在单击时禁用点击功能以允许点击表单文本输入?
- 21. 启用和使用jquery上点击按钮禁用输入字段(laravel5.3)
- 22. jQuery从用户输入点击创建列表项目点击
- 23. 用户点击后解析EditText输入
- 24. 用Jquery点击清除输入框
- 25. 点击禁用ng-mouseover
- 26. 禁用鼠标点击
- 27. 禁用点击背景UIViewController
- 28. 在点击后禁用div
- 29. 如何禁用点击SlidingUpPanelLayout
- 30. JavaScript来禁用点击
为什么地球上你会把一个按钮*放在链接里面?选择一个或另一个...不是两个!如果链接不在某处...... **请勿使用链接**。 –
它匹配设计。我有其他按钮没有输入,它使它看起来很性感 – Dejell
它应该匹配设计**图形**。设计是否需要在链接内嵌入'input'? –