我有兩個輸入字段,默認joomla登錄頁面中的選擇框和一個按鈕。從文件加載的頁面:(/templates/theme718/html/com_users/login/default_login.php) - Joomla默認登錄。使用Ajax請求提交表單
我需要填寫,更改並以編程方式單擊這些項目。
我設法填補輸入字段並使用下面的行更改選擇框選項:
jQuery(document).ready(function(){
....
jQuery('input#username').val('"+username+"');
jQuery('#lang option[value=zh-TW]').attr('selected','selected');
jQuery('#lang').change();
...
})
然而,我無法觸發使用以下行「點擊」甚至按鈕:
jQuery('#login').trigger('click');
jQuery('submit#login').click();
我這行的文件中:
<button type="submit" style="float:right" class="button loginbtn""><?php echo JText::_('JLOGIN'); ?></button>
但我不知道如果我採用t他糾正按鈕ID或不。
我的理解是,這個按鈕將提交以下表格(存在於組件/ com_users /視圖/登錄/ TMPL/default_login.php):
<form action="<?php echo JRoute::_('index.php?option=com_users&task=user.login'); ?>" method="post">
<fieldset>
<?php foreach ($this->form->getFieldset('credentials') as $field): ?>
<?php if (!$field->hidden): ?>
<div class="login-fields"><?php echo $field->label; ?>
<?php echo $field->input; ?></div>
<?php endif; ?>
<?php endforeach; ?>
<?php if (JPluginHelper::isEnabled('system', 'remember')) : ?>
<div class="login-fields">
<label id="remember-lbl" for="remember"><?php echo JText::_('JGLOBAL_REMEMBER_ME') ?></label>
<input id="remember" type="checkbox" name="remember" class="inputbox" value="yes" alt="<?php echo JText::_('JGLOBAL_REMEMBER_ME') ?>" />
</div>
<?php endif; ?>
<button type="submit" class="button"><?php echo JText::_('JLOGIN'); ?></button>
<input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getValue('return'))); ?>" />
<?php echo JHtml::_('form.token'); ?>
</fieldset>
</form>
所以我想通了,如果我不能觸發點擊按鈕事件,也許我會嘗試直接使用Ajax請求提交表單。
所以我的問題是,我怎麼能提交的形式:
- 通過點擊按鈕(如上陳述沒有工作)
- 通過提交表單直接使用來自不同領域 Ajax請求()。我嘗試以下,並沒有奏效:
$.ajax(
{
type:"POST",
url:"https://link/jdev/index.php/en/component/users/?task=user.login",
data:$('form').serialize(),
success: function(data){
alert("successful");
alert("Result: "+data.result+", Message: "+data.message);
}
});
警報返回「不確定」兩個「數據」和「消息」。 當我嘗試複製並通過網址進入我的瀏覽器時,它返回'無效令牌'。
這不是真正的網站,它只是用於測試目的。
檢查在開發工具的實際要求的參數添加
dataType : 'json'
網絡選項卡...查看實際發回的內容 – charlietfl@charlietfl我有以下行:'在我打開的頁面中,但是當我使用類似'jQuery('#login')的東西。觸發('點擊');',它不會觸發。 – Hawk