按键事件无效

时间:2015-05-20 10:07:42

标签: javascript jquery

我有一个文本和一个隐藏的输入字段。 我希望从输入字段中删除值,如果它是空的,则隐藏的框值应为零,但这不起作用。

$(document).ready(function () {
     $(document).on('keyup', '#placeByCountryName', function (e) {
         e.preventDefault();
         alert("hi");
         if (($('#placeByCountryName').val().length === 0) || ($('#placeByCountryName').val() === "")) {
             $('#placeByCountryId').val(0);
         }
     });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="hidden" name="atomAddressDetail.placeByCountryId.id" id="placeByCountryId" value="44" class="addressdetail form-control" />
<input type="text" name="atomAddressDetail.placeByCountryId.name" id="placeByCountryName" class="addressdetail form-control" value="India" placeholder="Country" />

但这不起作用。 如何解决上述问题?

编辑我从自动填充中获取了一些ID,名称值到我的文本框placeByCountryName,其placeByCountryId'. If user erase placeByCountryName then its placeByCountryId`中的相应ID应为零。

3 个答案:

答案 0 :(得分:2)

您需要在输入类型文本上附加事件,而不是在输入类型隐藏元素上附加事件:

$(document).on('keyup', '#placeByCountryName', function (e) {
     e.preventDefault();
     alert("hi");
     if (($(this).val().length === 0) || ($(this).val() === "")) {
         $('#placeByCountryId').val(0);
     }
 });

答案 1 :(得分:2)

应该是

$(document).on('keyup', '#placeByCountryName', function (e) {
});

而不是:

$(document).on('keyup', '#placeByCountryId', function (e) {
    });

答案 2 :(得分:1)

您需要使用type="text",因为keyup无效hidden

<input type="text" id="placeByCountryId" value="44" class="addressdetail form-control" />

$(document).ready(function () {
     $(document).on('keyup', '#placeByCountryId', function (e) {
         e.preventDefault();
         alert("hi");
         if (($(this).val().length === 0) || ($(this).val() === "")) {
             $(this).val(0);
         }
     });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="text" name="atomAddressDetail.placeByCountryId.id" id="placeByCountryId" value="44" class="addressdetail form-control" />
<input type="text" name="atomAddressDetail.placeByCountryId.name" id="placeByCountryName" class="addressdetail form-control" value="India" placeholder="Country" />

或{绑定Country Name文本框

上的事件
$(document).on('keyup', '#placeByCountryName', function(e) {
    if (($(this).val().length === 0) || ($(this).val() === "")) {
        $('#placeByCountryId').val(0);
    }
});