0

希望有人可以在这里帮助我。

我有一个在模式弹出窗口中显示用户列表的页面。可以通过两种方式访问​​此页面,一种方式是选择未经批准的用户,它将打开该页面,另一种方式是您选择用户帐户,一旦您完成后,将打开一个弹出窗口询问您是否有任何搜索条件,例如名称你搜索它会弹出用户页面。

我在表单上有一个按钮可以清除所有过滤器。当我在未经批准的用户页面上运行它时,它会很好地清除该框,但是如果我从其他方式在表单上执行此操作,则代码不会清空文本框,并且当我尝试发出警报时,它不会显示任何数据。警报在未经批准的路线上起作用的位置!

这是我正在使用的 jquery:

    clear: function () {
        //reset filters//
        $('.usersFilterList li').remove();
        $('.userFilterSelect option').show();

        $('#UserFilter_SearchTermIncluded').attr('value', ''); // This line doesn't seem to work properly

        alert($('#UserFilter_SearchTermIncluded').attr('value'));

        //hide filter options
        MSG.showNHide('', '#usersFilterBox');

        //reset modal control buttons
        $('#usersButSaveFilter,#usersButClearFilter').hide();
        $('#usersButFilter').fadeIn();

        usersFilter.refresh(0);
    }

谁能看看我是不是在做傻事?正如我所说,它与从同一个 MVC 操作调用的表单完全相同,只是中间有另一个弹出窗口。

抱歉,如果这令人困惑,恐怕我不能再发布代码了。我可以向您保证,文本框的 ID 是正确的。

这里的任何建议都将不胜感激,因为我已经盯着它看了好几个小时了......

干杯,加雷斯

如果我右键单击第二个选项并在新选项卡中运行并运行第一个弹出的完整页面,则代码将起作用!所以问题似乎是有两个弹出窗口。

解决了

我找到了自己的解决方法,感谢您的所有帮助。

我只是分配了一个类并搜索该类的任何项目并像这样清除它:

    $('.jq-clearme').val('');

我会尽可能关闭它。由于我的代表太低,我还没有被允许。

4

4 回答 4

2

要更改元素的值(或检索它),访问属性是错误的方法 - 它不是双向同步的。你想要的是财产。虽然也通过.prop('value'[, newvalue])使用 jQuery 获取/设置它的正确方法公开了.val([newvalue]).

要清除元素的值,请使用以下命令:

$('#UserFilter_SearchTermIncluded').val('');

要检索/显示它,请使用

alert($('#UserFilter_SearchTermIncluded').val());
于 2012-05-25T09:48:46.587 回答
0

您应该使用val()来获取/设置输入的值。

使用不带参数来获取值:

$('#UserFilter_SearchTermIncluded').val();

并使用参数设置值,在这种情况下将其设置为空:

$('#UserFilter_SearchTermIncluded').val('');
于 2012-05-25T09:49:25.010 回答
0

是否涉及 ajax 调用,它可能会加载您发布两次的 Javascript,因此当第二次调用时(在 ajax 调用之后)它会发现冲突?

正如其他人所提到的,最好使用.val('')来设置一个值并.val()获取该值。如果有任何 Javascript 错误,请检查 firebug。

于 2012-05-25T12:02:14.150 回答
0

我找到了自己的解决方法,感谢您的所有帮助。

我只是分配了一个类并搜索该类的任何项目并像这样清除它:

$('.jq-clearme').val('');

我会尽可能关闭它。由于我的代表太低,我还没有被允许。

于 2012-05-28T09:46:26.430 回答