-
Notifications
You must be signed in to change notification settings - Fork 161
Update dom/form data #800
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update dom/form data #800
Changes from 1 commit
3d9f133
1f3526c
31c026c
3fc37fe
8989d97
60f2e98
862b43e
30cbe41
aa5a898
1582e48
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,43 +18,101 @@ import scala.scalajs.js.| | |
@JSGlobal | ||
class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[String, String]] { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, it seems there are three possible constructors. new FormData()
new FormData(form)
new FormData(form, submitter) class FormData extends ... {
def this(form: HTMLFormElement) = this()
def this(form: HTMLFormElement, submitter: HTMLElement) = this()
} There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. class FormData(form: HTMLFormElement = js.native) extends ... {
def this(form: HTMLFormElement) = this(form)
def this(form: HTMLFormElement, submitter: HTMLElement) = this(form)
} I think this is good point ! I'd be grateful if someone could fix this part for sure There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
That won't work, because there are two constructors that take a I believe the correct change is the one I suggested in #800 (comment). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. got it ! |
||
|
||
/** Appends a key/value pair to the FormData object. */ | ||
/** The `append()` method of the `FormData` interface appends a new value onto an existing key inside a `FormData` | ||
* object, or adds the key if it does not already exist. | ||
* | ||
* @param name | ||
* The name of the field whose data is contained in value. | ||
* @param value | ||
* The field's value. This can be a string or `Blob` (including subclasses such as File). If none of these are | ||
* specified the value is converted to a string. | ||
*/ | ||
def append(name: js.Any, value: String): Unit = js.native | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh, the problem was caused by not fixing the original append method properly. |
||
|
||
/** The `append()` method of the `FormData` interface appends a new value onto an existing key inside a `FormData` | ||
* object, or adds the key if it does not already exist. | ||
* | ||
* @param name | ||
* The name of the field whose data is contained in value. | ||
* @param value | ||
* The field's value. This can be a string or `Blob` (including subclasses such as File). If none of these are | ||
* specified the value is converted to a string. | ||
* @param blobName | ||
* The filename reported to the server (a string), when a `Blob` or `File` is passed as the second parameter. The | ||
* default filename for `Blob` objects is "blob". The default filename for `File` objects is the file's filename. | ||
*/ | ||
def append(name: js.Any, value: Blob, blobName: String): Unit = js.native | ||
|
||
/** Deletes a key/value pair from the FormData object. */ | ||
/** The `delete()` method of the `FormData` interface deletes a key and its value(s) from a `FormData` object. | ||
* @param name | ||
* The name of the key you want to delete. | ||
*/ | ||
def delete(name: String): Unit = js.native | ||
|
||
/** Returns the first value associated with a given key from within a FormData object. */ | ||
/** The `get()` method of the `FormData` interface returns the first value associated with a given key from within a | ||
* `FormData` object. If you expect multiple values and want all of them, use the `getAll()` method instead. | ||
* | ||
* @param name | ||
* A string representing the name of the key you want to retrieve. | ||
* @return | ||
* A value whose key matches the specified name. Otherwise, `null`. | ||
zetashift marked this conversation as resolved.
Show resolved
Hide resolved
|
||
*/ | ||
def get(name: String): String | Blob = js.native | ||
zetashift marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
/** Returns whether a FormData object contains a certain key. */ | ||
/** The `has()` method of the `FormData` interface returns whether a `FormData` object contains a certain key. | ||
* | ||
* @param name | ||
* A string representing the name of the key you want to test for. | ||
* @return | ||
* `true` if a key of `FormData` matches the specified name. Otherwise, `false`. | ||
*/ | ||
def has(name: String): Boolean = js.native | ||
|
||
/** Sets a new value for an existing key inside a FormData object, or adds the key/value if it does not already exist. | ||
/** The `set()` method of the `FormData` interface sets a new value for an existing key inside a `FormData` object, or | ||
* adds the key/value if it does not already exist. | ||
* | ||
* @param name | ||
* The name of the field whose data is contained in value. | ||
* @param value | ||
* The field's value. | ||
*/ | ||
def set( | ||
name: String, value: String | ||
): Unit = js.native | ||
|
||
/** The `set()` method of the `FormData` interface sets a new value for an existing key inside a `FormData` object, or | ||
* adds the key/value if it does not already exist. | ||
* | ||
* @param name | ||
* The name of the field whose data is contained in value. | ||
* @param value | ||
* The field's value. | ||
*/ | ||
def set( | ||
name: String, value: Blob, blobName: String | ||
G-yhlee marked this conversation as resolved.
Show resolved
Hide resolved
|
||
): Unit = js.native | ||
|
||
@JSName(js.Symbol.iterator) | ||
override def jsIterator(): js.Iterator[js.Tuple2[String, String]] = js.native | ||
|
||
/** Returns an iterator that iterates through all key/value pairs contained in the FormData. */ | ||
/** The `FormData.entries()` method returns an iterator which iterates through all key/value pairs contained in the | ||
* `FormData`. The key of each pair is a string object, and the value is either a string or a `Blob`. | ||
*/ | ||
def entries(): js.Iterator[js.Tuple2[String, String | Blob]] = js.native | ||
|
||
/** Returns an array of all the values associated with a given key from within a FormData. */ | ||
/** The `getAll()` method of the `FormData` interface returns all the values associated with a given key from within a | ||
* `FormData` object. | ||
*/ | ||
def getAll(name: String): js.Array[String | Blob] = js.native | ||
|
||
/** Returns an iterator iterates through all keys of the key/value pairs contained in the FormData. */ | ||
/** The `FormData.keys()` method returns an iterator which iterates through all keys contained in the `FormData`. The | ||
* keys are strings. | ||
*/ | ||
def keys(): js.Iterator[String] = js.native | ||
|
||
/** Returns an iterator that iterates through all values contained in the FormData. */ | ||
/** The `FormData.values()` method returns an iterator which iterates through all values contained in the `FormData`. | ||
* The values are strings or `Blob` objects. | ||
*/ | ||
def values(): js.Iterator[String | Blob] = js.native | ||
} | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clear