[問題]如何將兩個JS函數合併?

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

主題已鎖定
頭像
fayeng
星球公民
星球公民
文章: 80
註冊時間: 2005-11-30 03:29
來自: 香港

[問題]如何將兩個JS函數合併?

文章 fayeng »

蕭遙大大提到:
因爲你的兩個JS函數重名了,所以造成只有一個有效,你貼的viewtopic_body.tpl裏面有這2個:
我也有這個問題出現,我剛裝上了 My Quick Reply 1.0.4 沒有問題,只是在快速回覆內打人文字按送出卻出現[sell] 打入文字[/sell] <---這個付費code,其他都一切正常。
但再裝上這個 Message too short 並引用了倉木麻衣大大的方法去修改
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/viewtopic_body.tpl

#
#-----[ FIND ]------------------------------------------
#
<tr>
<td align="left" colspan="3"><span class="nav">{PAGE_NUMBER}</span></td>
</tr>
</table>

#
#-----[ AFTER ADD ]------------------------------------------
#
// Here you can change 5 to the minimum amount
// of characters in a post you want.
<script language="JavaScript" type="text/javascript">
function checkForm()
{
var formErrors;
if (document.quick_reply.message.value.length < 5) {
formErrors = "{L_MESSAGE_TOO_SHORT}";
}
if (formErrors)
{
alert(formErrors);
return false;
}
else
return true;
}
</script>
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
,再在快速回覆內打入文字(無論多少字數)都會出現[發表文章必須要有文章內容]<---這表示快速回覆失效嗎?
爬文後知道可能是這兩個JS函數重名了,所以其中一個會失效。但試著自己去修改,但都不能做好,希望大大們可以幫我看看怎樣將這兩個JS函數結合吧﹗先謝謝哦﹗
這兩個JS函數是這樣的:

代碼: 選擇全部

	<!-- BEGIN switch_my_quick_reply -->
	<script type="text/javascript">
	function checkForm() {
		formErrors = false;
		document.post.message.value = '';
		if (document.post.input.value.length < 2) {
			formErrors = '{MQR_EMPTY_MESSAGE}';
		}
		if (formErrors) {
			alert(formErrors);
			return false;
		} else {
			if (document.post.quick_quote.checked) {
				document.post.message.value = document.post.last_msg.value;
			}
			document.post.message.value += document.post.input.value;
			return true;
		}
	}
	</script>
	<form action="{MQR_FORM_ACTION}" method="post" name="post" onsubmit="return checkForm()">
	<tbody id="qr_open" style="display:none; position:relative;">
	<tr>
		<th class="thLeft" height="26" nowrap="nowrap" width="150">{MQR_LANG_OPTIONS}</th>
		<th class="thRight" nowrap="nowrap">{MQR_LANG_QUICK_REPLY}</th>
	</tr>
	<tr>
		<td class="row1 gensmall" align="left" valign="middle" width="150">
			<a href="{MQR_SMILIES_URL}" onclick="window.open('{MQR_SMILIES_URL}', '_phpbbsmilies', 'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=250');return false;" target="_phpbbsmilies">{MQR_LANG_SHOW_SMILIES}</a><br /><br />
			<input type="checkbox" name="quick_quote" />{MQR_QUOTE_LAST_POST}<br />
			<input type="checkbox" name="attach_sig" checked="checked" />{MQR_ATTACH_SIG}<br />
			<!-- BEGIN switch_unlock_checkbox -->
			<input type="checkbox" name="unlock" />{MQR_LANG_UNLOCK_TOPIC}<br />
			<!-- END switch_unlock_checkbox -->
			<!-- BEGIN switch_lock_checkbox -->
			<input type="checkbox" name="lock" />{MQR_LANG_LOCK_TOPIC}<br />
			<!-- END switch_lock_checkbox -->
		</td>
		<input type="hidden" name="mode" value="reply" />
		<input type="hidden" name="sid" value="{MQR_SESSION_ID}" />
		<input type="hidden" name="t" value="{MQR_TOPIC_ID}" />
		<input type="hidden" name="message" value="" />
		<input type="hidden" name="notify" value="{MQR_NOTIFY_USER}" />
		<input type="hidden" name="last_msg" value='{MQR_LAST_MSG}' />
		<td class="row1" valign="top">
			<table width="100%" border="0" cellspacing="0" cellpadding="0">
				<tr>
					<td class="row1" valign="top">
						<span class="gensmall"><b>{MQR_SUBJECT}:</b></span><br />
						<input type="text" name="subject" size="45" maxlength="60" style="width:450px" class="post" value="{SUBJECT}" />
						<textarea name="input" cols="70" rows="7" wrap="virtual" style="width:100%" class="post"></textarea>
						<table width="100%" border="0" cellspacing="0" cellpadding="0">
							<tr align="center">
							<td>
								<input type="submit" name="preview" class="liteoption" value="{MQR_LANG_PREVIEW}" />&nbsp;<input type="submit" name="post" class="mainoption" value="{MQR_LANG_SUBMIT}" />
							</td>
							</tr>
						</table>
					</td>
				</tr>
			</table>
		</td>
	</tr>
	</tbody>
	</form>
	<!-- END switch_my_quick_reply -->

代碼: 選擇全部

<script language="JavaScript" type="text/javascript"> 
function checkForm() 
{ 
   var formErrors; 
   if (document.quick_reply.message.value.length < 6) { 
      formErrors = "{L_MESSAGE_TOO_SHORT}"; 
   } 
    if (formErrors) 
    { 
        alert(formErrors); 
        return false; 
    } 
    else 
        return true; 
} 
</script> 
多謝各位大大們的指導﹗﹗
有你在旁協助,很快就能成長﹗
_______________________________________

●架設主機作業系統:Windows Xp Pro
●我的上網方式:香港區網
●我的 phpBB2 版本:phpBB2.0.20
●安裝的程式:Apache 1.3.27 (Unix) + phpMyAdmin 2.5.6 + php 4.2.3 + MySQL 版本 4.0.12
●已裝外掛:性別外掛gender_1.2.6em ,CASHMOD223a,bank mod 1.5.0(754),生日mod,註冊 IP mod,公告add-on,推薦和嘔氣mod,付費瀏覽三合一,即時留言,聊天室,水怪rpg,重寄認證信,blog,偽子分區,附加檔案,主題類型及分類,虛擬形象。
ethan
星球公民
星球公民
文章: 218
註冊時間: 2002-06-01 09:48
聯繫:

文章 ethan »

其實不用去考慮"合併",後往升級你可能又會遇到一次問
簡單的把兩個沖到的函式名稱改掉即可,你可以挑其中一個mod

例如挑 quck reply 來改
<!-- BEGIN switch_my_quick_reply -->
<script type="text/javascript">
function checkForm() {

... 中間省略 ...

</script>
<form action="{MQR_FORM_ACTION}" method="post" name="post" onsubmit="return checkForm()">
<tbody id="qr_open" style="display:none; position:relative;">
<tr>

將兩個 checkForm 改為 checkQucikReplyForm
或其他你想要的名稱即可
頭像
fayeng
星球公民
星球公民
文章: 80
註冊時間: 2005-11-30 03:29
來自: 香港

文章 fayeng »

ethan 寫:其實不用去考慮"合併",後往升級你可能又會遇到一次問
簡單的把兩個沖到的函式名稱改掉即可,你可以挑其中一個mod

例如挑 quck reply 來改
<!-- BEGIN switch_my_quick_reply -->
<script type="text/javascript">
function checkForm() {

... 中間省略 ...

</script>
<form action="{MQR_FORM_ACTION}" method="post" name="post" onsubmit="return checkForm()">
<tbody id="qr_open" style="display:none; position:relative;">
<tr>

將兩個 checkForm 改為 checkQucikReplyForm
或其他你想要的名稱即可
快速回文可以正常運作了,但從快速回文處用不著Message too short,我限定字數最少6個字,但我只是打上一兩個字就可以回文,即是表示Message too short在快速回文處是無效。
其實是不是因為上面寫的:
我也有這個問題出現,我剛裝上了 My Quick Reply 1.0.4 沒有問題,只是在快速回覆內打入文字按送出卻出現[sell] 打入文字[/sell] <---這個付費code,其他都一切正常。所以加上兩個sell之後多過限制,所以可以發文吧﹗那麼只是打一個字仍不受Message too short的限制吧﹗
是否我的付錢瀏覽有問題出現?

我已試過將字數限制改18,但都不行。
多謝各位大大們的指導﹗﹗
有你在旁協助,很快就能成長﹗
_______________________________________

●架設主機作業系統:Windows Xp Pro
●我的上網方式:香港區網
●我的 phpBB2 版本:phpBB2.0.20
●安裝的程式:Apache 1.3.27 (Unix) + phpMyAdmin 2.5.6 + php 4.2.3 + MySQL 版本 4.0.12
●已裝外掛:性別外掛gender_1.2.6em ,CASHMOD223a,bank mod 1.5.0(754),生日mod,註冊 IP mod,公告add-on,推薦和嘔氣mod,付費瀏覽三合一,即時留言,聊天室,水怪rpg,重寄認證信,blog,偽子分區,附加檔案,主題類型及分類,虛擬形象。
ethan
星球公民
星球公民
文章: 218
註冊時間: 2002-06-01 09:48
聯繫:

文章 ethan »

沒有同時試過裝過這兩個 mod
照上面貼上來的部份看起來應該沒問題
方便的話是否貼個測試連結?
頭像
fayeng
星球公民
星球公民
文章: 80
註冊時間: 2005-11-30 03:29
來自: 香港

文章 fayeng »

ethan 寫:沒有同時試過裝過這兩個 mod
照上面貼上來的部份看起來應該沒問題
方便的話是否貼個測試連結?
ethan 大大,
多謝你的回覆,我都是放棄了快速回覆這個MOD,因為會員們都不會用啊﹗
多謝各位大大們的指導﹗﹗
有你在旁協助,很快就能成長﹗
_______________________________________

●架設主機作業系統:Windows Xp Pro
●我的上網方式:香港區網
●我的 phpBB2 版本:phpBB2.0.20
●安裝的程式:Apache 1.3.27 (Unix) + phpMyAdmin 2.5.6 + php 4.2.3 + MySQL 版本 4.0.12
●已裝外掛:性別外掛gender_1.2.6em ,CASHMOD223a,bank mod 1.5.0(754),生日mod,註冊 IP mod,公告add-on,推薦和嘔氣mod,付費瀏覽三合一,即時留言,聊天室,水怪rpg,重寄認證信,blog,偽子分區,附加檔案,主題類型及分類,虛擬形象。
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

Re: [問題]如何將兩個JS函數合併?

文章 ~倉木麻衣~ »

fayeng 寫:在快速回覆內打人文字按送出卻出現[sell] 打入文字[/sell] <---這個付費code,其他都一切正常。
那個主要是你安裝快速回覆後, 沒有做付費瀏覽的額外修改
修改方式在原付費瀏覽1.0.9裡就有寫了, 而且在你提問的前一二天也才有人解決過相同的問題
http://phpbb-tw.net/phpbb/viewtopic.php?p=234431#234431
fayeng 寫:在快速回覆內打入文字(無論多少字數)都會出現[發表文章必須要有文章內容]<---這表示快速回覆失效嗎?
爬文後知道可能是這兩個JS函數重名了
你會失敗的原因在於快速回覆表單(form)所使用的名稱(name)與我所舉的例子不同
而你又直接抄過去用, 當然會出現問題
以你給的內容來看, 其實並不要裝Message too short
因為這一行就是在檢查輸入的訊息長度, 你只需要改變其中的數值2為你想要限制的最小字數即可

代碼: 選擇全部

      if (document.post.input.value.length < 2) { 
         formErrors = '{MQR_EMPTY_MESSAGE}'; 
      }
差別只是錯誤提示訊息永遠都是顯示「空白訊息」之類罷了
謝絕所有私人訊息詢問外掛相關問題
有問題請直接於版上發表, 集思廣議絕對比專挑特定人士詢問來的好

竹貓禁止發表含破解相關的軟體, 違者砍文
不要跟我講別的地方都可以發, 為什麼竹貓就不行
免費不等於破解, 傻傻的搞不清楚
主題已鎖定

回到「外掛問題討論」