如何用更合适的东西替换document.write

时间:2012-09-12 21:35:18

标签: javascript

我有一些带有document.write的旧代码。

<script type="text/javascript" language="JavaScript1.2">
document.write('<form name="InvGenPayDonation" action="'+PostURL+'" onsubmit="return validateForm();" method="POST">');
</script>

如何使用在加载页面时确定的javascript变量替换操作?这是代码,它不是函数的一部分。 (我已经替换了名字,所以substr索引不正确,但我相信你明白了。)

// Check where we came from so that we can go to the right spot when the
// form gets posted from outside of our HTML tree.
var PostURL = '/event.php';

if (window.location.href.substr(0, 21) == 'http://10.10.10.10:80')
  PostURL = 'http://10.10.10.10:8580/event.php';
else if (window.location.href.substr(0, 14) == 'http://webapps')
  PostURL = 'http://10.100.0.11:8580/event.php';
else if (window.location.href.substr(0, 7) == 'webapps')
  PostURL = 'http://10.10.10.10:8580/event.php';
else if (window.location.href.substr(0, 10) == 'http://www')
  PostURL = 'https://secure.french.toast.new_zeland.france/event.php';

我希望PostURL能够进入表单的行动。如果我可以在没有document.write的情况下做到这一点,那就太好了。我只是需要一些帮助。感谢。

4 个答案:

答案 0 :(得分:1)

其他一些DOM0代码应该可以解决这个问题:

// Your code from the question here
document.forms[0].action = PostURL;

请注意,这假定您的表单是页面上的第一个表单 - 如果不是,请将[0]替换为表单的从零开始的索引。

但是,您可以(并且可能应该)使用不依赖于页面布局的更现代的解决方案。最简单的是document.getElementById - 只需在表单中添加ID属性(确保ID的值在整个页面中是唯一的),然后执行以下操作:

document.getElementById("yourFormID").action = PostURL;

答案 1 :(得分:1)

好吧,你可以用html创建你的表单,给它和id,然后像这样做:

document.getElementById('myform').setAttribute('action', post_url);

答案 2 :(得分:0)

我会用jquery来做。如果您还不知道,还需要包含jquery文件。

$(document).ready(function() {
var PostURL = '/event.php';

if (window.location.href.substr(0, 21) == 'http://10.10.10.10:80')
  PostURL = 'http://10.10.10.10:8580/event.php';
else if (window.location.href.substr(0, 14) == 'http://webapps')
  PostURL = 'http://10.100.0.11:8580/event.php';
else if (window.location.href.substr(0, 7) == 'webapps')
  PostURL = 'http://10.10.10.10:8580/event.php';
else if (window.location.href.substr(0, 10) == 'http://www')
  PostURL = 'https://secure.french.toast.new_zeland.france/event.php';


  $("#search-form").attr("action", PostURL);
});

<form action='' id="search-form">
</form>

答案 3 :(得分:0)

您可以将jQuery用于您的目的。此代码将设置表单的操作而不使用document.write:

$("form[name=InvGenPayDonation]").attr("action", PostURL);