React+Ts+Antd实现Modald框中控制多个Tab页的多个Form表单

React+Ts+Antd实现Modald框中控制多个Tab页的多个Form表单,第1张

1、其实难点也就是多个Tab页,每个Tab页都有单独的Form表单,通过Modal的一个按钮如何控制,如何去校验多个表单。可以通过Ref实现此 *** 作

首先创建空的Ref数组

渲染界面,循环时每次创建一个Ref,和表单。并且这个表单用当前创建的Ref作为唯一标识。

2、表单子组件,将Form对象传递出去

3、create的时候,也就是点击Modald窗确定的时候,调用子组件的方法获取每个ref的Form对象,通过Promise.all方法判断是否都通过了校验

不能使用window parent

Window parent是用来在frame中进行 *** 作的 在对话框中不能用来 *** 作父窗口对象

正确的做法

调用modaldialog时通过传参数的方式 *** 作

需求

父窗口页面为l 子窗口页面为l l中有文本框id为test 在打开的对话框中点击按钮 将l的文本框值改为 子窗口值

实现

打开对话框时把test 作为参数传给子窗口 在子窗口中获取参数 将参数对象(即l中传过来的text对象)的value属性值设置为 子窗口值

注意 这里只能传id 不能传name

l代码如下

<>

<head>

<meta equiv= Content Type content= text/charset=gb >

<title>l</title>

</head>

<body>

<input type=text id=test value= >

<input type=button value= OK onclick= window showModalDialog( l test ) >

</body>

</>

l代码如下

<>

<head>

<meta equiv= Content Type content= text/charset=gb >

<title>l</title>

<script language=javascript>

function func (){

//获取父窗口传过来的参数

var ptextid = window dialogArguments

if(ptextid != undefined){

//将父窗口传过来的对象的值改为 子窗口值

ptextid value = 子窗口值

//关闭子窗口

window close()

}

}

</script>

</head>

<body>

<input type=button value= OK onclick=func ()>

</body>

</>

如果需要 *** 作的父窗口对象比较多 也可以将window或window document作为参数传给子窗口

需求

l中添加id为 aform 的的form form中有id为test 的文本框 在l中 除了进行上面的 *** 作之外 还要将test 的值改为 子窗口值 并将form提交到l

实现

将l中打开对话框的函数改为如下方式:

window showModalDialog( l window document)

将l中func ()改为如下:

function func (){

var pdoc = window dialogArguments

if(pdoc!=undefined){

pdoc all test value= 子窗口值

pdoc all test value= 子窗口值

pdoc all aform action= l

pdoc all aform submit()

}

实现

因为在子窗口中对父窗口进行的 *** 作比较多 也可以采用execScript的方式实现

将l中打开对话框的函数改为如下方式:

window showModalDialog( l window)

添加javascript函数如下

function func(){

test value= 子窗口值

document all test value= 子窗口值

aform action= l

aform submit()

将l中func ()改为如下:

function func (){

var pwin = window dialogArguments

if(pwin!=undefined){

var codeStr = func()

pwin execScript(codeStr javascript )

window close()

}

lishixinzhi/Article/program/Java/hx/201311/27093


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11468893.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存