[英]SharePoint add Javascript event to a editForm.aspx page
[英]MOSS 07 editform.aspx fails to commit and goes to blank html page
從Microsoft博客找到解決方案...請參閱下文
好的,首先,我不喜歡隨機這個詞,但是在這個問題的測試案例中我找不到任何相關性,因此我將使用隨機來描述這個問題的某些部分。
設置:我有一個列表,其中列出了EditForm.aspx和NewForm.aspx的自定義UI。 我在兩者之間使用了相同的JS文件和JavaScript。 我在Google地圖中添加了幫助說明位置選擇的信息。 我已將其他代碼添加到“確定”按鈕中,以進行一些動態驗證。 我也做了很多動態菜單操作。 所有用戶都使用IE 9,並且該站點位於MOSS 2007服務器上。
問題:僅在EditForm.aspx上,單擊“確定”,“隨機”會導致立即出現白屏。 表單未保存,查看白屏的源代碼時,我發現空白的html頁面。
我試圖找到這個問題的原因:-我試圖縮小發生這種情況的用戶和計算機的范圍,發現每台計算機上的每個人都發生這種情況(再次“隨機”)。 -我嘗試禁用前面添加到“確定”按鈕的代碼-我嘗試在調試IE9的外部腳本之后跟蹤代碼,但未發現任何錯誤
我可以提供代碼,但是它有點長,我真的不知道從哪里開始。 因此,如果需要,我可以提供。
感謝您的提前幫助。
編輯:這是代碼重新連接我的“確定”按鈕(我之前將值重置為“保存”)
var okBtns = $('input[value="Save"]')
$.each(okBtns, function(index,value){
okFunction=$(value).attr('onclick');
$(value).attr('onclick','return false;')
$(value).bind('click', function(){
if ($('#'+StatusBox).val()=='Draft') {$('#'+StatusBox).val('New Request')}
var err = clickOKbutton();
if(err==0) {okFunction()};
});
});
這是常規共享點操作之前的代碼的clickOKbutton函數:
function clickOKbutton()
{
//all of the imput validation i could ever wish for!!!!
var NoteVal = ''
var NameAry = $('#'+PersonnelBox).parent().children(":first").children("SPAN").children("SPAN");
$.each(NameAry, function(index,value){
var $n=$(value).html();
if(NoteVal.length==0) {NoteVal=$n} else {NoteVal=NoteVal+';'+$n};
});
//$('#'+AddNotes).val(NoteVal);
var plh = $('#'+PersonnelBox).parent().html()
userNameTx = $('#zz8_Menu').text();
userNameTx = userNameTx.replace('Welcome ','');
$.each(OICUsers, function(i,v){
if(plh.indexOf(v) > -1 && st=='New Request'){
$('#'+StatusBox).val('OIC Bypassed')
$('#'+CommentsBox).val('OIC is travling on this TDY/TAD and cannot approve. So this request is bypassing the "OIC Approval" step')
}
});
/*userNameTx = $('#zz8_Menu').text();
userNameTx = userNameTx.replace('Welcome ','')
$('#' + ModBox).closest('TR').show();*/
var message=''
message = detectFieldChanges(AllFieldsArray,AllOrgValArray,"Draft,New Request,Modified")
if(message.length>0){
$('#'+ModBox).val(message);
AutoResizeTextarea(ModBox);
}
message = detectFieldChanges(ValFieldsArray,OrgValuesArray,"Draft,New Request,Modified,OIC Approved,OIC Bypassed,Pending RFI,Ready for COS")
userNameTx = $('#zz8_Menu').text();
userNameTx = userNameTx.replace('Welcome ','');
if(message.length>0&&$.inArray(userNameTx,COSUsers)==-1){
$('#'+StatusBox).val('Modified').change;
$('#'+StatusLongBox).val('Modified').change;
}
//Subject box
var pb = NoteVal;
var ep = $('#'+ExtPersonnel).val();
var ab = $('#'+AddressBox).val();
var sd = $('#'+sDateBox).val();
var ed = $('#'+eDateBox).val();
var st = $('#'+StatusBox).val();
var p = pb+';'+ep;
var p = p.replace(/mossaspnetmembershipprovider:/g,'');
var p = p.slice(0,-1);
var ad = ab+' '+sd+' to '+ed;
var s = 'eTDY | '+st+' - '+p+' - '+ad;
if(s.length>255){
var l = s.length-255;
p = p.substring(0,p.length-l);
s = 'eTDY | '+p+' - '+ad;
}
$('#'+Subject).val(s);
//check Lat/Lng value
if($('#'+LatBox).val()=='' || $('#'+LngBox).val()==''){
//alert("Cannot continue unless the Lat Lng has a vallid coordinate");
if($('#LatLngError').length==0){
errorHTML='<br><span class="ms-error" id="LatLngError">You must specify a value for Lat and Lng</span>'
$('#'+AddressBox).closest('TD').append(errorHTML)
}
return -1
}
return 0
};
它很雜亂,但希望您能理解它。
編輯2:
我想我已經跟蹤了隨機性……我完全關閉了所有自定義代碼,仍然有問題。 然后,我嘗試將工作記錄與非工作記錄進行比較。 一切看起來都很正常,直到我與多人選擇器一起到達現場為止。 如果我在該字段中有2個以上的人,它將保存正常,但是當我在人員選擇器字段中與2個以上的人對該記錄進行修改時,將導致此問題。 我將做更多研究,並將發布結果。
編輯3:
http://blogs.msdn.com/b/jorman/archive/2009/12/22/mystery-of-the-sharepoint-white-screens.aspx
此問題全部歸結為IIS配置和模擬級別。 顯然,我們的服務器管理員決定在不通知任何人的情況下進行更改。
通常,當您從網頁(尤其是在MOSS中)獲得[看似隨機]的行為時,這意味着您在頁面上定義了模糊的事件。 通常,當我向按鈕或on_submit表單中添加某種JScript時,就會得到此信息。
沒有看到您的代碼,我無法進一步縮小范圍。 我建議:在HTML表單上或按鈕單擊事件上查找JavaScript事件,或者尋找指向無處(href =#)但具有javascript的錨點[a]標簽。 然后決定(嚴格地)以HTML方式(表單,提交按鈕)或javascript方式(無表單,無asp:button)進行操作,然后取消連線。
此問題全部歸結為IIS配置和模擬級別。 顯然,我們的服務器管理員決定在不通知任何人的情況下進行更改。
http://blogs.msdn.com/b/jorman/archive/2009/12/22/mystery-of-the-sharepoint-white-screens.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.