2011-05-03 51 views
0

如何使用变量输入参数到动作标签? 例如:html里面的Javascript

var actionurl="some url" 
windowhandle.document.write('<form name=sample action=actionurl method="post" </form>'); 
windowhandle.document.sample.submit(); 

这是行不通的。我得到404页未找到错误。请给我一种替代方法

+0

感谢大家。它的工作很好:) – Suki 2011-05-03 14:52:55

+0

优秀。请接受答案:)请参阅每个人左侧的勾号。 – 2011-05-04 09:20:30

回答

4

您没有在您的表单中设置actionurl的值。试试这个:

windowhandle.document.write('<form name=sample action=' + actionurl + 'method="post"> </form>'); 

编辑:你也缺少了“>”我现在已经增加。

+0

不要忘记在“发布”之后,就像这样:'

' – onitake 2011-05-03 14:33:49

+0

@onitake - 好的发现,我修改了。 – 2011-05-03 14:35:23

1

试试这个:

var actionurl="some url" 
windowhandle.document.write('<form name=sample action='+ actionurl +' method="post" </form>'); 
windowhandle.document.sample.submit(); 
0

你可以使用Python的.format()功能:

String.prototype.format = function() { 
    var str = this; 
    var i = 0; 
    var len = arguments.length; 
    var matches = str.match(/{}/g); 
    if(!matches || matches.length !== len) { 
     throw "wrong number of arguments"; 
    } 
    while(i < len) { 
     str = str.replace(/{}/, arguments[i]); 
     i++; 
    } 
    return str; 
}; 

只是,代码粘贴到你的脚本,它可以让你使用该功能。

Python的.format()是干净的字符串操作有用:

'I {} a {}'.format('am', 'string') 
// I am a string 

它只是取代了括号子与函数的参数。

现在,你的新代码将是这样的:

var actionurl="some url" 
windowhandle.document.write('<form name="sample" action="{}" method="post"></form>'.format(actionurl)); 
windowhandle.document.sample.submit(); 

一定要使用周围的属性报价!

+0

他没有使用Python ... – Andrea 2011-05-03 14:32:57

+0

Python的.format()?你能澄清一下吗? :) – rzetterberg 2011-05-03 14:33:51

+0

我知道。它是一个来自Python的'.format()'的JavaScript实现。我虽然OP想要一种方法来插入字符串而不使用加号。 – Blender 2011-05-03 14:34:17