使用Ajax请求提交表单

时间:2015-05-07 06:16:22

标签: php jquery ajax forms joomla

我有两个输入字段,默认joomla登录页面中的选择框和一个按钮。从文件加载的页面:(/ templates/theme718/html/com_users/login/default_login.php) - Joomla默认登录。

我需要以编程方式填写,更改和单击这些项目。

我设法填充输入字段并使用以下行更改选择框选项:

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>

但我不确定我是否使用了正确的按钮ID。

我的理解是这个按钮将提交以下表格(存在于components / com_users / views / login / 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请求直接提交表单。

所以我的问题是,如何提交表格:

  1. 通过按钮点击(上述说法不起作用)
  2. 通过使用Ajax请求直接提交表单(来自不同的域)。我尝试了以下操作,但没有用:
  3.  $.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);
              }
           });
    

    警报返回&#39; undefined&#39;对于这两个数据&#39;和&#39;消息&#39;。 当我尝试将网址复制并粘贴到我的浏览器中时,会返回“无效令牌”。

    这不是真正的网站,只是出于测试目的。

0 个答案:

没有答案