iT邦幫忙

1

我想利用while 迴圈 印出我想要的字 急

如果很多alter 我想要集中起來然後只出現一次alert
就是user如果那格沒填在按下存檔後會跳出alert,萬一很多都沒填寫會跳出很多alert,想請問大神怎麼樣可以只出現一次alert就好QQ
小女子在線等了~~~
下面的FUNCTION 有問題的話也多多指教了(跪)

function customization_Panel1_saveItem() {
submitForm('#JQDialog1')
if ($('#dataFormMastersmoda_docno').refval('getValue') =="" || $('#dataFormMastersmoda_docno').refval('getValue') ==null || $('#dataFormMastersmoda_docno').refval('getValue') =="undefine")
{
alert("訂單單號不能空白");}

 else if ($('#dataFormMaster3smoda_021').refval('getValue') =="" || $('#dataFormMaster3smoda_021').refval('getValue') ==null || $('#dataFormMaster3smoda_021').refval('getValue') =="undefine")

{
alert("收貨客戶不能空白");}
}

 else if ($('#dataFormMastersmoda_docdt').datebox('getValue') =="" || $('#dataFormMastersmoda_docdt').datebox('getValue') ==null || $('#dataFormMastersmoda_docdt').datebox('getValue') =="undefine")

{
alert("訂單日期不能空白");}
}
else if ($('#dataFormMastersmoda_002').refval('setValue') =="" || $('#dataFormMastersmoda_002').refval('setValue') ==null || $('#dataFormMastersmoda_002').refval('setValue') =="undefine")
{
alert("業務人員不能空白");}

 else if ($('#dataFormMastersmoda_003').refval('setValue') =="" || $('#dataFormMastersmoda_003').refval('setValue') ==null || $('#dataFormMastersmoda_003').refval('setValue') =="undefine")

{
alert("業務部門不能空白");}

 else if ($('#dataFormMaster3smoda_020').refval('setValue') =="" || $('#dataFormMaster3smoda_020').refval('setValue') ==null || $('#dataFormMaster3smoda_020').refval('setValue') =="undefine")

{
alert("帳款客戶不能空白");}

 else if ($('#dataFormMaster3smoda_021').refval('setValue') =="" || $('#dataFormMaster3smoda_021').refval('setValue') ==null || $('#dataFormMaster3smoda_021').refval('setValue') =="undefine")

{
alert("收貨客戶不能空白");}

 else if ($('#dataFormMaster3smoda_033').refval('setValue') =="" || $('#dataFormMaster3smoda_033').refval('setValue') ==null || $('#dataFormMaster3smoda_033').refval('setValue') =="undefine")

{
alert("最終客戶不能空白");}

 else if ($('#dataFormMaster3smoda_054').refval('setValue') =="" || $('#dataFormMaster3smoda_054').refval('setValue') ==null || $('#dataFormMaster3smoda_054').refval('setValue') =="undefine")

{
alert("發票客戶不能空白");}

 else if ($('#dataFormMaster2smoda_009').refval('getValue') =="" || $('#dataFormMaster2smoda_009').refval('getValue') ==null || $('#dataFormMaster2smoda_009').refval('getValue') =="undefine")

{
alert("收款條件不能空白");}

 else if ($('#dataFormMaster2smoda_010').refval('getValue') =="" || $('#dataFormMaster2smoda_010').refval('getValue') ==null || $('#dataFormMaster2smoda_010').refval('getValue') =="undefine")

{
alert("交易條件不能空白");}

 else if ($('#dataFormMaster2smoda_011').refval('selectItem') =="" || $('#dataFormMaster2smoda_011').refval('selectItem') ==null || $('#dataFormMaster2smoda_011').refval('selectItem') =="undefine")

{
alert("稅別不能空白");}

 else if ($('#dataFormMaster2smoda_022').refval('setValue') =="" || $('#dataFormMaster2smoda_022').refval('setValue') ==null || $('#dataFormMaster2smoda_022').refval('setValue') =="undefine")

{
alert("銷售通路不能空白");}

 else if ($('#dataFormMaster2smoda_014').refval('getValue') =="" || $('#dataFormMaster2smoda_014').refval('getValue') ==null || $('#dataFormMaster2smoda_014').refval('getValue') =="undefine")

{
alert("幣別不能空白");}

 else if ($('#dataFormMaster2smoda_034').refval('setValue') =="" || $('#dataFormMaster2smoda_034').refval('setValue') ==null || $('#dataFormMaster2smoda_034').refval('setValue') =="undefine")

{
alert("發票類型不能空白");}

 else if ($('#dataFormMaster2smoda_016').refval('getValue') =="" || $('#dataFormMaster2smoda_016').refval('getValue') ==null || $('#dataFormMaster2smoda_016').refval('getValue') =="undefine")

{
alert("取價方式不能空白");}

 else if ($('#dataFormMaster2smoda_015').val() =="" || $('#dataFormMaster2smoda_015').val() ==null || $('#dataFormMaster2smoda_015').val() =="undefine")

{
alert("匯率不能空白");}

看更多先前的討論...收起先前的討論...
ccutmis iT邦高手 4 級 ‧ 2021-01-06 20:58:01 檢舉
土法範例參考: 先創個空陣列 if判斷出有錯的字串不要alert() 把它放到陣列裡 最後才用forEech把陣列收集的錯誤字串們一次alert出來

<script>
var errors_array=[];
if(true){
errors_array.push('ERROR1');
}
if(true){
errors_array.push('ERROR2');
}
if(true){
errors_array.push('ERROR3');
}
errors_txt='All Errors: \n ';
errors_array.forEach(element => errors_txt+=element+'\n');
alert(errors_txt);
</script>

傳統武術以點到為止,自己coding才是長久之計。
淺水員 iT邦研究生 3 級 ‧ 2021-01-06 23:18:21 檢舉
好奇為什麼提問貼的程式碼會變成那麼多段
是巧合還是特別這樣做?
ccutmis iT邦高手 4 級 ‧ 2021-01-06 23:53:33 檢舉
可能是為了突顯 alert ...? -v-|||
我是直接貼我的程式碼 我不知道會變成這樣qq 沒想到會自動幫我整理,下次會注意,我有找到方法了,原來不用迴圈就可以。感謝大家指教(跪)
alert好用,東西少只用alert可能還容易找到哪裡有問題

但多的話或許可以換個思考方向

在input 旁 (下) 加上 span,初始用display:none
當條件成立時將提醒字串寫進對應的span並顯示
送出時再用class判斷群組裡面每一個span是否visible
有的話再alert注意欄位旁的提醒標語

還有些細節須處理,個人作法以上僅供參考
0
rogeryao
iT邦大師 5 級 ‧ 2021-01-07 08:44:58
<label for="fname">First name:</label>
<input type="text" id="fname" name="fname"><br><br>
<label for="lname">Last name:</label>
<input type="text" id="lname" name="lname"><br><br>
<input type="button" value="確定" onclick="confirm()">
function confirm()
{
  var DisplayString =""
  if (document.getElementById("fname").value=="" )
  {
    DisplayString = DisplayString + "First name 不可空白!" + "\n";
  }
  if (document.getElementById("lname").value=="" )
  {
    DisplayString = DisplayString + "Last name 不可空白!"+ "\n";
  }
  if (DisplayString !="")
  {
    alert(DisplayString);
  }
}

Demo

感恩大師!!!

2
japhenchen
iT邦大師 1 級 ‧ 2021-01-07 09:43:04

用個array,把所有程式執行結果都push進那個array裡,如

var messages = new Array();

messages.push( doSomethingA() ); // 函數有回傳結果或錯誤
messages.push( doSomethingB() );
messages.push( doSomethingC() );
//................

if(messages.length>0) {
    alert( messages.join("\n") );
}

https://jsfiddle.net/p7hovk39/

謝大師解答!!!

1

我只針對你的問題回答

將所有的alert字串

alert('XXXXX');

改成

errorMsg += 'XXXX\n';

然後在開頭先宣告好

var errorMsg='';

在所有的判斷最後加上

if(errorMsg){
    alert(errormsg);
}

可能會有字串連接的問題,這點就交給你自行去處理了。
我只針對你的問題回答

恩恩 解決了,謝謝大師幫忙解答(跪)

我要發表回答

立即登入回答