javascript xslt 将无法正确发布数据

发布于 2024-11-29 15:04:49 字数 740 浏览 0 评论 0原文

我正在尝试使用 javascript 提交表单(从 xslt 样式表生成)。

<form name='myform' action='search.php' method='post'>
    <input type='hidden' name='query' />
    <script type='text/javascript'>
    function submit(id)
    {
      document.myform.elements[0] = id;  *Note* I have tried document.getElementById('query').value = id;
      document.myform.submit();
    }
    </script>
</form>

在此代码之后,我有 xsl 翻译格式化 xml 数据。我这样调用提交函数: 注意此 href='' 不执行任何操作 提交('一些查询')

当我单击 href 时,javascript 函数会执行并且似乎工作正常,除了没有数据被发布。我将值设置为“somequery”,但是当表单被 POST 后,该值是“”(空白)。

为什么要这样做?我已经在 javascript 中尝试过 createElement('input') 等,但我无法获得表单来发布输入值。

I am trying to submit a form using javascript (generated from an xslt stylesheet).

<form name='myform' action='search.php' method='post'>
    <input type='hidden' name='query' />
    <script type='text/javascript'>
    function submit(id)
    {
      document.myform.elements[0] = id;  *Note* I have tried document.getElementById('query').value = id;
      document.myform.submit();
    }
    </script>
</form>

After this code I have xsl translations formatting xml data. I call the submit function like this:

NOTE This href='' does nothing

submit('somequery')

When I click on the href the javascript function executes and seems to work fine, except NO data gets POST'ed. I set the value to 'somequery' but when the form gets POST'ed, the value is '' (blank).

Why does it do this? I have tried createElement('input') and such from within javascript but I cannot ever get the form to POST the input value.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

漆黑的白昼 2024-12-06 15:04:49

你在这里使用火狐浏览器吗?浏览器之间的行为可能有所不同。首先,您应该返回使用 getElementById

document.getElementById('query').value = id; 

这可能不起作用的原因是您的隐藏元素实际上并未指定 id 属性。

<input type='hidden' name='query' id='query' /> 

在 IE 中,我相信它允许缺少 id 并假设它等于 name。在 Firefox 中,当您尝试执行 getElementById 时,缺少 id 会导致 JavaScript 错误

<form name='myform' action='search.php' method='post'> 
<input type='hidden' name='query' id='query' /> 
<script type='text/javascript'> 
function submit(id) 
{ 
   document.getElementById('query').value = id; 
   document.myform.submit(); 
} 
</script> 
</form> 

Are you using Firefox here? The behaviour may differ between browser. Firstly, you should go back to using getElementById

document.getElementById('query').value = id; 

The reason this may not have worked is that your hidden element does not actually specify an id attribute.

<input type='hidden' name='query' id='query' /> 

In IE, I believe it allows a lack of id and assumes it is equal to the name. In Firefox, a lack of id results in a javascript error when you try to do getElementById

<form name='myform' action='search.php' method='post'> 
<input type='hidden' name='query' id='query' /> 
<script type='text/javascript'> 
function submit(id) 
{ 
   document.getElementById('query').value = id; 
   document.myform.submit(); 
} 
</script> 
</form> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文