如何使一个区域不可点击

时间:2011-08-04 08:16:01

标签: jquery

我的<a>包含<input type="text"> 点击<a>将提交父表单,<a>中的输入是数量,因为它现在正在尝试更改金额,它将触发表单。我知道我怎么能做到这一点,但我不知道如何完成jquery,所以我会赞美一些帮助

这是我到目前为止所得到的

$(document).ready(function() {
        $('.submit-parent-form').click(function() {              
            alert($(this).children('#quantity').val());
        });

        $('.input-a-tag').focus(function(){
            $(this).parent('.submit-parent-form') //here i need to prevent the click
        });
    });

HTML

<a class="submit-parent-form"><input id="quantity" type="text" class="input-a-tag" value="1" /></a>

修改 我看到的并不是我的解决方案根据<a>获得焦点之前的点击,以及我如何能够做到的任何想法,我的想法不会如何工作 编辑2 问题是,当我尝试进入a标签中的输入时,尝试更改数量

3 个答案:

答案 0 :(得分:4)

试试这个:

$('.input-a-tag').click(function(event){
        event.stopPropagation();
    });

这应该点击输入元素,而不是传播给它的父级。

答案 1 :(得分:1)

var prevent = false;
$(".submit-parent-form").click(function(e){         

    if(prevent)
        e.preventDefault();
    else
        alert($(this).children('#quantity').val());
});

$(".submit-parent-form").focus(function(){
    prevent = true;
});


$(".submit-parent-form").blur(function(){
    prevent = false;
});

http://jsfiddle.net/zND4B/4/

了解它的工作原理

编辑: 我添加了在激活h http://jsfiddle.net/zND4B/6/之前显示的警报 请注意,a可以没有href。

答案 2 :(得分:-1)

简单的方法是:

$("#ElementName").css("pointer-events","none");