javascript - 隐藏/显示表单输入和更改值

标签 javascript jquery forms validation twitter-bootstrap-3

我很困惑,所以现在我向我的开发人员同事寻求帮助。这可能是我忽略的非常简单的事情,但你知道当你过于认真地看某事时它是怎样的,通常它就在那里,你只是错过了它。不管怎样,我已经说得够多了,切中要点!

我有这个应用程序,我只需要它的一小部分方面的帮助。它与 bootstrap 3 放在一起,所以我不知道这是否与它有关。我想做的是,点击复选框 #mailing_address,检查更改,如果选中,则将当前地址部分的值添加到 #p_address、#p_address2、#p_city、#p_state、#p_zip 到它们在下一组输入中各自的#m_ 值,然后禁用#m_ 输入,这样它们就无法更改。这部分有效

如果未选中该框,再次更改#mailing_address 时,清除所有#m_ 输入并再次启用输入。这是不起作用的部分。

这是给我这个问题的表单片段

<div class='form-group'>
                <div class='col-md-5 col-md-offset-1 col-sm-6'>
                    <div class='input-group app-input'>
                        <input type='text' class='form-control' id='p_address' placeholder='Your Current Address'>
                        <span class='input-group-addon'><span class='glyphicon glyphicon-home'></span></span>
                    </div>
                </div>
            </div>
            <div class='form-group app-input-no-group'>
                <div class='col-md-5 col-md-offset-1 col-sm-6'>
                        <input type='text' class='form-control' id='p_address2' placeholder='Current Address Line 2'>
                </div>
            </div>
            <div class='form-group app-input-no-group'>
                <div class='col-md-3 col-md-offset-1 col-sm-4'>
                    <input type='text' class='form-control' id='p_city' placeholder='Your Current City'>                        
                </div>
            </div>
            <div class='form-group app-input-no-group'>
                <div class='col-md-3 col-md-offset-1 col-sm-4'>
                    <select class='form-control' id='p_state'>                      
                        <option value="" selected>Your Current State</option>
                        <? include $up_level.'inc/body/extras/state_list_options.php';?>
                    </select>
                </div>
            </div>
            <div class='form-group app-input-no-group'>
                <div class='col-md-3 col-md-offset-1 col-sm-4'>
                    <input type='text' class='form-control' id='p_zip' placeholder='Your Current Zip'>                      
                </div>
            </div>
            <div class='form-group'>
                <div class='col-md-5 col-md-offset-1'>
                    <div class='checkbox'>
                        <label><input type='checkbox' id='mailing_address'>Check here if your mailing address is the same as your current address</label>
                    </div>
                </div>
            </div>
            <div class='form-group'>
                <div class='col-md-5 col-md-offset-1 col-sm-6'>
                    <div class='input-group app-input'>
                        <input type='text' class='form-control' id='m_address' placeholder='Your Mailing Address'>
                        <span class='input-group-addon'><span class='glyphicon glyphicon-home'></span></span>
                    </div>
                </div>
            </div>
            <div class='form-group app-input-no-group'>
                <div class='col-md-5 col-md-offset-1 col-sm-6'>
                        <input type='text' class='form-control' id='m_address2' placeholder='Mailing Address Line 2'>
                </div>
            </div>
            <div class='form-group app-input-no-group'>
                <div class='col-md-3 col-md-offset-1 col-sm-4'>
                    <input type='text' class='form-control' id='m_city' placeholder='Your Mailing City'>                        
                </div>
            </div>
            <div class='form-group app-input-no-group'>
                <div class='col-md-3 col-md-offset-1 col-sm-4'>
                    <select class='form-control' id='m_state'>                      
                        <option value="" selected>Your Mailing State</option>
                        <? include $up_level.'inc/body/extras/state_list_options.php';?>
                    </select>
                </div>
            </div>
            <div class='form-group app-input-no-group'>
                <div class='col-md-3 col-md-offset-1 col-sm-4'>
                    <input type='text' class='form-control' id='m_zip' placeholder='Your Mailing Zip'>                      
                </div>
            </div>

作为引用,带有文件“state_list_options.php”的 include 语句只是带有州名称和缩写的选择选项列表,如下所示:

<option value='AZ'>Arizona</option>

这是我为它命名的 Jquery 代码

$(document).ready(function(){
    //check if the mailing address checkbox is checked
    //if so then we will fill the mailing address in with the information from current address   then hide all the mailing address fields
    //else clear the mailing address fields and show them again
    //set variables 
    var p_values = ['p_address', 'p_address2', 'p_city', 'p_state', 'p_zip'];
    var m_values = ['m_address', 'm_address2', 'm_city', 'm_state', 'm_zip'];
    $("#mailing_address").change(function(){
        if($(this.checked)){
        //if checked get the values from the current address fields
            for(var i = 0; i < p_values.length; i++){
                $('#'+m_values[i]+'').val($('#'+p_values[i]+'').val());
                $('#'+m_values[i]+'').attr('disabled', 'disabled');
            }
        }
        else{
            //this is the part that is failing
            for(var i = 0; i < p_values.length; i++){
                $('#'+m_values[i]+'').val("");
                $('#'+m_values[i]+'').removeAttr('disabled');
            }
        }
    });
});

这是否与我使用 ID 而不是输入的类或名称这一事实有关?我认为这不重要。我真的不知道,但我完全被难住了。如果需要,我可以添加更多详细信息,让我知道!

最佳答案

this.checked 中移除 $() jsFiddle

if(this.checked){

如果你想让它成为一个 jQuery 对象,那么它看起来像这样

if($(this).is(':checked')){

关于javascript - 隐藏/显示表单输入和更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25790501/

相关文章:

javascript - 从 JavaScript 引用 Controller 操作

jquery - 在 Bootstrap 中单击按钮时,我的模型窗口闪烁?原因?

javascript - 向 slider 添加自定义箭头

javascript - 按年龄功能的价格折扣

android - 在 Android 应用中提交带有 POST 数据的表单

php - Twitter 在 Modal 中的 bootstrap Form

javascript - 如何实现Flash的播放或暂停?

javascript - 使用 JavaScript 的 ASP.NET 回发

javascript - XMLHttpRequest 无法加载 http ://example. com/test.php。没有'访问控制允许来源

javascript - 如何在当前光滑元素下方添加插入符号?