我正在开发一个JavaScript来检测文本中的链接并打开一个JqueryUI对话框,其中包含三个按钮“是”,“否”,“取消”。一切都很好。当javascript检测到文本中的链接时,它会显示对话框。 “否”和“取消”按钮工作正常。我想在用户点击“是”按钮时提交表单,但它不起作用。 这是我的HTML和Javascript代码。
<script type="text/javascript">
function findUrls()
{
var text = document.forms["myForm"]["text"].value;
var source = (text || '').toString();
var urlArray = [];
var url;
var matchArray;
// Regular expression to find FTP, HTTP(S) and email URLs.
var regexToken = /\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig;
// Iterate through any URLs in the text.
if( (regexToken.exec( source )) !== null )
{
$(document).ready(function(){
$( "#dialog" ).dialog({
autoOpen: false,
width: 400,
buttons: [
{
text: "Yes",
click: function() {
$("#myForm").submit();
}
},
{
text: "No",
click: function() {
$( this ).dialog( "close" );
}
},
{
text: "Cancel",
click: function() {
$( this ).dialog( "close" );
}
}
]
});
$( "#dialog" ).dialog( "open" );
});
}
}
function submitform()
{
document.forms["myForm"].submit();
}
</script>
<div id="dialog" title="Dialog Title">
<p>Tes Test Test.</p>
<p><a href="javascript: submitform()">Submit</a></p>
</div>
<form name="myForm" id="myForm1" action="" onsubmit="return findUrls();">
<textarea name="text"></textarea>
<input type="submit" name="submit" id="dialog-link" value="Check it out." />
</form>
答案 0 :(得分:1)
对于初学者,您的onsubmit
始终收到undefined
的值。为了在这种情况下提交表单,findUrls()
需要返回true
。
JavaScript没有void类型,因此每个函数都必须返回一个 值。默认值是未定义的,除了构造函数,其中 默认返回值是这个。
答案 1 :(得分:0)
您正在使用属性名称作为ID,请改用:
$("#myForm1").submit();
或者:
submitform();