簡體   English   中英

如何在更新成功之前禁用某些控件?

[英]How to disable certain controls until update is successful?

我正在使用GridView ,幾乎所有東西都工作正常。

剩下的唯一事情是確保當我在一個文本字段中鍵入時,我的GridView除了當前一行之外的所有其他text fieldsSubmit按鈕都被禁用,直到我的更新完成。

這是我的GridView生成的html代碼:

<div id="gridView">
                     <div>
        <table cellspacing="0" border="1" style="border-color:Red;border-collapse:collapse;position:absolute; top: 290px;" id="MainContent_grvIsoSearchResults" rules="all">
            <tbody><tr>
                <th scope="col">ISONUM</th><th scope="col">OFFICE NAME</th><th scope="col">REGION</th><th scope="col">DIVISION</th><th scope="col">EMAIL ADDRESS</th>
            </tr><tr>
                <td>
                                    <span style="display:inline-block;width:70px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoNum_0">222222222 </span>
                                </td><td>
                                    <span style="display:inline-block;width:200px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoOfficeName_0">My Test</span>
                                </td><td>
                                    <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvRegion_0">99</span>
                                </td><td>
                                    <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvDivision_0">11111</span>
                                </td><td>
                                    <input type="text" style="width:200px;" onclick="ResetMessage();" id="MainContent_grvIsoSearchResults_txtgvEmailAddress_0" value="mytest@google.com" name="ctl00$MainContent$grvIsoSearchResults$ctl02$txtgvEmailAddress">
                                    <input type="submit" id="MainContent_grvIsoSearchResults_btnEmailUpdate_0" value="Update" name="ctl00$MainContent$grvIsoSearchResults$ctl02$btnEmailUpdate">
                                </td>
            </tr><tr>
                <td>
                                    <span style="display:inline-block;width:70px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoNum_1">CB2222001 </span>
                                </td><td>
                                    <span style="display:inline-block;width:200px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoOfficeName_1">DENNIS PETROVIC          </span>
                                </td><td>
                                    <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvRegion_1"></span>
                                </td><td>
                                    <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvDivision_1">99801</span>
                                </td><td>
                                    <input type="text" style="width:200px;" onclick="ResetMessage();" id="MainContent_grvIsoSearchResults_txtgvEmailAddress_1" value="dennis@dlgent.com" name="ctl00$MainContent$grvIsoSearchResults$ctl03$txtgvEmailAddress">
                                    <input type="submit" id="MainContent_grvIsoSearchResults_btnEmailUpdate_1" value="Update" name="ctl00$MainContent$grvIsoSearchResults$ctl03$btnEmailUpdate">
                                </td>
            </tr><tr>
                <td>
                                    <span style="display:inline-block;width:70px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoNum_2">FT2222001 </span>
                                </td><td>
                                    <span style="display:inline-block;width:200px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoOfficeName_2">DENNIS PETROVIC          </span>
                                </td><td>
                                    <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvRegion_2"></span>
                                </td><td>
                                    <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvDivision_2">99801</span>
                                </td><td>
                                    <input type="text" style="width:200px;" onclick="ResetMessage();" id="MainContent_grvIsoSearchResults_txtgvEmailAddress_2" value="dennis@dlgent.com" name="ctl00$MainContent$grvIsoSearchResults$ctl04$txtgvEmailAddress">
                                    <input type="submit" id="MainContent_grvIsoSearchResults_btnEmailUpdate_2" value="Update" name="ctl00$MainContent$grvIsoSearchResults$ctl04$btnEmailUpdate">
                                </td>
            </tr>
        </tbody></table>
    </div>

我該怎么做?

謝謝

試試下面的代碼;

$(function () {
//this is based on your code only, this could be done a lot prettier if you added a custom attribute to each
// <tr> like let's say - myrownumber ... then there is no need to get a child and find rownumber on the fly, 
//an everything would be prettier; 
$('input').live("focus", function () {

    var rowId = $(this).attr('id');
    var selectedRow = rowId.substring((rowId.length - 1), rowId.length);
    $('tr').each(function () {
        //find rownum 
        var inputId = $(this).find('input').attr('id');

        if (inputId != null && typeof inputId !== "undefined") {
            var row = inputId.substring((inputId.length - 1), inputId.length);

            if (row !== selectedRow) {
                $(this).find('input').prop("disabled", true);
            }
        }
    });

});
//once again this is based on your code, this can be done more ellegantly if you implement smarter naming 
//make all buttons of same class, etc... for easier selection
$('input[type=submit]').live("click", function () {
    //submit your request and get response 
    //if response success 
    $('tr').each(function () {
        $(this).find('input').prop("disabled", false);
    });

});

});

在@ user3380971的幫助下,我已經完成了我的問題解決方案:

$(函數(){

$('input[type="text"]').live("focus", function() {
    var rowId = $(this).attr('id');
    $('tr').each(function(){
        var inputId = $(this).find('input[type="text"]').attr('id');
        var submitId = $(this).closest("tr").find('input[type="submit"]').attr('id');
        alert(submitId);
        if(inputId != null && typeof inputId != "undefined"){
            if(rowId != inputId){               
                $(this).find('input[type="text"]').attr("disabled", "disabled");
                $(this).closest("tr").find('input[type="submit"]').attr("disabled","disabled");
            }
        }
    });                                
});

});

現在,我正在禁用屬於不同行的文本字段和按鈕,然后禁用屬於更新下的行的onces

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM